Asp.net2.0身份验证技术学习入门---角色管理(三)

  前面几篇介绍了如何使用角色,这一篇简单的讲一下如何使用角色进行限制使用。我们在网站中建一个文件夹“Admin”里面建一个Admin.aspx页面,在Web.config里做一下设置对此文件夹进行保护 
< location  path ="Admin" >
    
< system .web >
      
< authorization >         
        
< deny  users ="?" />
      
</ authorization >
    
</ system.web >
  
</ location >

  上面的设置对Admin文件夹进行了保护所有未登录的用户都不能够访问这个文件夹里的页面,但是这种限制的面太广,比如Admin文件夹里放的都是网站系统管理页,在实际使用过程中管理员是分为多个不同等级的,比如论坛里的版主、坛主等等都有管理权限,而他们的管理权限大小不同,他们都能够访问Admin文件夹里的页面,但是版主只能对他所在的版进行管理,坛主则可以对所有版进行管理,当然我们也可以设置多个文件夹给每个文件夹不同的访问权限,但在实际使用中有时文件夹设的太多反而不利于管理,当多个角色都能访问同一文件夹的时候我们如何针对不同角色的权限来进行细小的限制管理呢?我个人一般采用如下方法,首先在Web.config里设置好允许访问该文件夹的角色:

< location  path ="Admin" >
    
< system .web >
      
< authorization >         
        
< allow  roles ="Admin"   />
        
< allow  roles ="Director"   />
        
< allow  roles ="Member"   />
        
< deny  users ="*" />
      
</ authorization >
    
</ system.web >
</ location >
   以上有三个角色可以访问Admin(Admin,Director,Member)之后来看一下我们Admin/Admin.aspx页面,我在里页放了三个Button按钮,假设三个按钮的功能分别为:“查看”,“添加”,“删除”:
<% @ Page Language="C#" AutoEventWireup="true" CodeFile="Admin.aspx.cs" Inherits="Admin_Admin"  %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > 无标题页 </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div  style ="text-align: center" >
        Administrator
    
</ div >
    
< P >
        
< asp:TextBox  ID ="TextBox1"  runat ="server" > Data </ asp:TextBox > &nbsp; </ P >
        
< p >
            
< asp:Button  ID ="Button1"  runat ="server"   Text ="查看"   />
            
< asp:Button  ID ="Button2"  runat ="server"   Text ="添加"   />
            
< asp:Button  ID ="Button3"  runat ="server"   Text ="删除"   /></ p >
    
</ form >
</ body >
</ html >
   我们希望对三种角色的权限做如下分配:Admin角色可以使用:“查看”,“添加”,“删除”三种功能,而Director角色只能使用:“查看”,“添加”功能,Member角色只能使用:“查看”功能,好了现在我们在代码页里写入权限代码:
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

public   partial   class  Admin_Admin : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!IsPostBack)
        
{
            
if (Roles.IsUserInRole("Admin"))
            
{
                Button1.Visible 
= true;
                Button2.Visible 
= true;
                Button3.Visible 
= true;
            }

            
else if (Roles.IsUserInRole("Member"))
            
{
                Button1.Visible 
= true;
                Button2.Visible 
= false;
                Button3.Visible 
= false;
            }

            
else if (Roles.IsUserInRole("Director"))
            
{
                Button1.Visible 
= true;
                Button2.Visible 
= true;
                Button3.Visible 
= false;
            }

        }
        
    }
    
}
   在代码页里我们使用Roles类的IsUserInRole方法来判断当前登录用户是否属于我们指定的角色,如果是Admin角色就把三个按钮的可视设为true(这段不要也行,因为页面默认就是true),Director角色把“查看”“添加”两个按钮可视设为true“删除”的可视为false也就不能使用“删除”按钮功能,Member只有“查看”按钮可视为true其他两个按钮都是false都不可用,这样一来,每次打开页里的时候就会根据当前用户的角色来限制他所能使用的按钮功能,对于.NET中的其他控件都可以用这种方法进行限制,我用的这种方法也许不是太好,如果大家有更好的方法也说出来大家分享一下
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值