ASP.NET对HTML元素进行权限控制(三)

上一篇博客中有些没有考虑到的东西这次更改一下代码如下:

界面前台:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AdmShowDIV.aspx.cs" Inherits="ExamSystemV3.Manager.RoleManager.AdmShowDIV" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="Author" content="kudychen@gmail.com" />
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
    <title></title>
    <script src="../../js/DIV/jquery.js" type="text/javascript"></script>
    <script src="../../js/DIV/DIV.js" type="text/ecmascript"></script>
    <link href="../../css/admin.global.css" rel="stylesheet" type="text/css" />
    <link href="../../css/admin.content.css" rel="stylesheet" type="text/css" />     
	<script type="text/javascript" src="../../../js/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="../../js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="../../js/jquery.utils.js"></script>
    <link href="../../jBox/Skins/Green/jbox.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="../../jBox/jquery.jBox-2.3.min.js"></script>
    <script type="text/javascript" src="../../js/admin.js"></script>
	<script type="text/javascript" src="../../js/SimpleTree.js"></script>


</head>
<body>
   <form id="form1" runat="server">
<div class="container">
    <div class="location">当前位置:界面元素管理 -> 查看界面元素</div>
    
    <div class="blank10"></div>

    <div class="search block">
        <div class="h">
            <span class="icon-sprite icon-magnifier"></span>
            <h3>快速搜索</h3>
        </div>
        <div class="tl corner"></div><div class="tr corner"></div><div class="bl corner"></div><div class="br corner"></div>
        <div class="cnt-wp">
            <div class="cnt">
                <div class="search-bar" id="SelectRole">
                    <label class="txt-green">请选择界面:</label>
                    <asp:DropDownList ID="DdlWindowsName" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DdlWindowsName_SelectedIndexChanged">   
                    </asp:DropDownList>
                    <a class="btn-lit" href="#" οnclick="WindowsInfo()"><span>扫描界面信息</span></a>
                </div>
                
            </div>
        </div>
        </div>
    </div>
     
  <div class="block">
        <div class="h">
            <span class="icon-sprite icon-list"></span>
            <h3>界面详情</h3>
        </div>
        <div class="tl corner"></div>
      <div class="tr corner"></div>
      <div class="bl corner"></div>
      <div class="br corner"></div>
        <div class="cnt-wp">
            <div class="cnt">
			    <iframe id="frmWindows" runat="server" frameborder="0" marginheight="0" marginwidth="0" scrolling="auto"  style=" display: inline; height: 400px;" width="75%"  ></iframe>
                <iframe id="frmUpdateDIV" runat="server"  frameborder="0" marginheight="0" marginwidth="0" scrolling="auto"  style="display: inline; height: 400px; width: 24%;"></iframe>     
            </div>
      
        </div>
    </div>
       
    </form>
</body>
</html>


 

界面后台:

using BLL.Manager.RoleUserManagerBLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ExamSystemV3.Manager.RoleManager
{
    public partial class AdmShowDIV : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string strLike="";
            if (!IsPostBack)
            {
                //绑定界面
                DataBindWindows(strLike);
            }
            
            
        }
        /// <summary>
        /// 绑定所有界面
        /// </summary>
        /// <param name="strLike"></param>
        public void DataBindWindows(string strLike)
        {
            DataTable dt = new DataTable();
            AdmWindowsManager admWindowsManager = new AdmWindowsManager();
           //查出所有的界面
            dt = admWindowsManager.QueryWindowInfo(strLike);
            //绑定界面信息
            DdlWindowsName.DataSource = dt;
            DdlWindowsName.DataValueField = "Id";
            DdlWindowsName.DataTextField = "WindowsName";
            DdlWindowsName.DataBind();
            
        }

        protected void DdlWindowsName_SelectedIndexChanged(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            string strLike = "";
            AdmWindowsManager admWindowsManager = new AdmWindowsManager();
            //查出界面的信息
            dt = admWindowsManager.QueryWindowInfo(strLike);
            string strWindowsId=DdlWindowsName.SelectedValue.ToString().Trim();
              strLike = "Id='"+strWindowsId+"'";
             DataRow[] rows =dt.Select (strLike);
            //获得路径
             string strURL = rows[0]["WindowsURL"].ToString ();
             strURL = "../../" + strURL;
            frmWindows.Attributes["src"]=strURL;
            frmUpdateDIV.Attributes["src"] = "AdmUpdateDIV.aspx?WindowsID='" + strWindowsId + "'";
        }
    }
}


 

JS:

var WindowsID;
function WindowsInfo() {
    //获取ifrm
    var frmWindows = document.getElementById("frmWindows").contentWindow;
    //获取界面ID
     WindowsID = document.getElementById("DdlWindowsName").value;

        var rootboxs = frmWindows.document.getElementById("main");
        var child = rootboxs.childNodes;
        findchildbox(child);
        
    
};
//搜寻子节点
function findchildbox(parentNode) {

    for (var i = 0; i < parentNode.length; i++) {
       
        if (parentNode[i].nodeName == "BOX") {
            
            var childboxId = parentNode[i].id;
            var childboxTitle = encodeURI(parentNode[i].title);
            var parentbox = findparentbox(parentNode[i].parentNode);
            var parentboxId = parentbox.id;
            if (window.XMLHttpRequest) {
                //IE7 above,firefox,chrome^^
                xmlhttp = new XMLHttpRequest();
                //为了兼容部分Mozillar浏览器,当来自服务器响应开头不是xml,导致的无法响应问题
                if (xmlhttp.overrideMimeType) {
                    xmlhttp.overrideMimeType('text/xml');
                }
            }
            else if (window.ActiveXObject) {
                //IE5\IE6
                xmlhttp = new activeXObject("Microsoft.XMLHTTP");
            }
            if (xmlhttp == null || xmlhttp == undefined) {
                alert("con't create XMLHttpRequest Object");
            }
            
            注册回调函数
            //xmlhttp.onreadystatechange = callback;
            //发送信息
           
            xmlhttp.open('GET', '../../Manager/RoleManager/AddBox.ashx?childboxId=' + childboxId + '&childboxTitle=' + childboxTitle + '&parentboxId=' + parentboxId+'&windowsId='+WindowsID, true);
            xmlhttp.send(null);

        
            //function callback() {
            //    //判断交互是否完成,是否正确返回
            //    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                   
            //    }
            //}
          
    }
      
            findchildbox(parentNode[i].childNodes)

    }
    
}

//查询父节点
function findparentbox(child) {
   
        if (child.nodeName == "BOX") {
            return child;
        } else {
           return findparentbox(child.parentNode)
            
        }
    
}


 

一般处理程序:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BLL.Manager.RoleUserManagerBLL;
using System.Data;
using System.Text;
using Model;
using BLL;

namespace ExamSystemV3.Manager.RoleManager
{
    /// <summary>
    /// AddBox 的摘要说明
    /// </summary>
    public class AddBox : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            System.Threading.Thread.Sleep(1000);
            DIVEntity EDiv = new DIVEntity();
            TR_WindowsDIVEntity EWindowsDiv = new TR_WindowsDIVEntity();
           AdmDIVManager admDIVManager = new AdmDIVManager();
           PublicBLL publicBll = new PublicBLL();
            ///收集信息
            string strChildBoxId = "";
            string strChildBoxTitle = ""; 
            strChildBoxId = context.Request.QueryString["childboxId"].ToString().Trim();
            strChildBoxTitle = context.Server.UrlDecode(context.Request.QueryString["childboxTitle"].ToString().Trim());
            string strWindowsId = context.Request.QueryString["windowsId"].ToString().Trim();
            string strParentBoxId=context.Request.QueryString["parentboxId"].ToString ().Trim();;
            string strState = "是";
            string strDateTime = publicBll.GetDate();
            string strIP = publicBll.GetWebClientIp();
            string strOperator ="xvshu";//context.Session["UserNo"].ToString().Trim(); ;

            //给实体类赋值
            EDiv.Id = strChildBoxId;
            EDiv.MainRelation = strParentBoxId;
            EDiv.DIVName = strChildBoxTitle;
            EDiv.DIVDescribe = strChildBoxTitle;
            EDiv.Operator = strOperator;
            EDiv.OperatorIP = strIP;
            EDiv.State = strState;
            EDiv.DateTime = strDateTime;
            //给WindowsDIV实体类赋值
            EWindowsDiv.DIVID = strChildBoxId;
            EWindowsDiv.WindowsID = strWindowsId;
            EWindowsDiv.IsVisible = "是";
            EWindowsDiv.Operator = strOperator;
            EWindowsDiv.OperatorIP = strIP;
            EWindowsDiv.DateTime = strDateTime;
            
            //添加DIV
            admDIVManager.AddDIV(EDiv,EWindowsDiv);
            
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
ASP.NET权限控制是指在ASP.NET应用程序中对不同用户或角色的访问权限进行管理和控制的一种机制。通过权限控制,可以确保只有具备相应权限的用户才能访问特定的页面、功能或资源,从而保障系统的安全性和合规性。 ASP.NET提供了多种权限控制的方式。其中一种常见的方式是使用角色和认证。角色是对用户进行分类的一种方式,通过为用户分配角色,在系统中可以根据角色对用户的权限进行管理和控制。而认证是指验证用户的身份是否合法,只有通过了认证的用户才可以访问受限资源。 ASP.NET可以通过使用ASP.NET提供的内置的认证和授权机制来进行权限控制。其中认证可以使用Forms身份验证、Windows身份验证等方式,授权可以使用基于角色的授权、基于声明的授权等方式。通过在应用程序中配置认证和授权的策略,可以在代码中对用户进行身份验证和权限验证,实现对不同资源的不同访问控制。 除了使用内置的认证和授权机制外,ASP.NET还支持自定义的权限控制方式。可以根据具体需求,自定义一些过滤器或模块来实现特定的权限控制逻辑。比如可以使用自定义的授权过滤器来对请求做进一步的权限验证,或者使用自定义的模块来拦截请求并根据用户的角色或权限判断是否可以访问某个资源。 总之,ASP.NET权限控制是通过认证和授权机制,对不同用户或角色的访问权限进行管理和控制的一种机制。ASP.NET提供了多种内置的认证和授权方式,同时也支持自定义的权限控制方式。通过合理配置和使用这些机制,可以实现对系统中不同资源的灵活权限控制

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值