ASP.NET2.0学习6--角色控制与管理

角色控制与管理

 

认证与授权机制

使用用户管理控件

成员资格与角色管理

 

一、ASP.NET 2.0 安全性

必要性

对于网站而言,用户身份认证与权限管理是非常重要的部分。

通过用户名和密码,对用户进行身份验证,并指派他可访问的资源,这部分工作一直都是网站开发的重要内容。

 

在另外一些情况下,需要根据用户的身份进行权限识别,不同用户访问相同页面,也需要显示不同内容。

这涉及到用户权限管理部分,也是网站开发的核心内容。

 

二、ASP.NET 2.0 角色控制概述

• ASP.NET 2.0membershiprolemanager能够非常好的解决这个问题,不但可以对用户的登陆信息进行统一管理,还可以就用户的权限进行分类管理,让开发者方便的就网站权限与安全性进行设定。

• ASP.NET 2.0Login控件更提供了一种非常方便的建造登陆与用户管理信息的方法。

三、认证与授权

• ASP.NET通过与IIS协同工作来进行授权管理。共两种身份认证方式

 1通过查询acls列表或者许可证来判定该访问是否拥有浏览的权利。

 2.通过URL认证

 

当用户以访问某网站的时候。两种授权方式分别会进行不同的动作

第一种认证方式会根据用户的登陆信息来判定asp.net针对该用户所指定的系统帐号,然后再判断该系统帐号是否对被请求的本地资源有访问权限。

第二种身份认证方式通过检查asp.net配置文件来进行授权认证。

 

• Asp.net的页面认证方式中,可以使用以下三种方式进行身份认证。

通过修改config文件中的authentication属性,可以配置不同的认证方式

 

1.使用PassPort SDK进行二次开发Passport

2.基于cookie的身份认证机制Forms

3.基于windows身份验证,首先判断windows用户的身份和组

4.不进行授权与身份验证None

 

描述取值

<configuration>

<system.web>

<authentication mode="Forms"/>  /forms方式

</system.web>

</configuration>

 

1Windows认证方式

• Window认证方式通过使用

windowsprincipal类对用户的windows身份进行判定,然后根据用户所属的windows身份组来进行认证。

需要在wen.config里加上 <authentication mode="Windows"/>

 

2Form认证方式

• From认证方式是在窗体内提供用户输入ID和密码的地方,并根据用户输入的ID和密码进行身份认证。

• Form认证方式同时还使用cookie记录用户的信息,当用户访问其他页面的时候,程序通过访问cookie来获得用户的身份信息。

Form认证方式配置文件

<configuration>

<system.web>

<authentication mode="Forms"/> <authorization>

<forms name=".ASPXCOOKIEDEMO"

loginUrl="login.aspx" protection="All" timeout="30"

path="/">

<!-- protection="[All|None|Encryption|Validation]" -->

</forms>

<deny users="?" />

</authorization>

</system.web>

</configuration>

 

配置文件中的属性意义如下表所示

ProtectionCookie被保存的方式

PathCookie的保存路径

TimeOutCookie的存活时间默认值是30分钟

NameCookie的名字,注意,如果一个服务器有很多应用的话,要给cookie其不同的名字

LoginUrl指定一个用于登陆的页面

 

Protection属性

• Protection是用来描述cookie的保存方式的,有下列四个可选择项目

All--同时使用EncryptionValidation

Validation--监视cookie,保证传输过程中不会被监听或者篡改。但是并不对cookie进行加密。

Encryption--使用des或者三层descookie进行加密,但是并不对cookie传输中是否被监听或篡改进行监视

None--不使用任何方法保护cookie

 

使用文件记录用户的帐户和密码

用户还可以通过指定可访问的用户名和密码来指定访问用户。

• <authentication>

• <credentials passwordFormat="SHA1" >

• <user name="Mary"

password="94F85995C7492EEC546C321821AA4BECA

9A3E2B1"/>

• <user name="John"

password="5753A498F025464D72E088A9D5D6E87259

2D5F91"/>

• </credentials>

• </authentication>

 

在指定密码的保存方式时,可以指定密码的存放方式,有3种方式。如下表所示

使用MD5进行加密MD5

使用SHA1进行加密SHA1

不加密进行存储Clear

 

用户访问还可以通过定制访问规则来实现对用户的角色分配。

• <authorization>

• <allow users="someone@www.frontfree.com" />

• <allow roles="Admins" />

• <deny users="*" />  //所有用户禁用 如果是?表示匿名用户禁用

• </authorization>

以上代码指定只有someone@www.frontfree.com的用户可以访问该站点,并且该用户具有的权限是管理员

 

web.config里,同样可以通过配置alldeny属性来对访问用户的Id,访问方法进行设定

• <allow VERB="POST" users="John,Mary" />

• <deny VERB="POST" users="*" />

• <allow VERB="GET" users="*" />

 

• Form认证演示

使用用户管理控件

• Login,Loginstatus,CreateUserWizard控件

示例

• LoginView示例

• ChangePassword示例

 

四、成员管理

成员管理特性基于membershipmenbershipuser两个类。可以使用membership类为asp.net创建用户

• membership类还可以完成以下工作 

建立一个新的membershipuser 

可以对用户身份进行验证

  找回一个membershipuser实例

  更新一个membershipuser实例

  通过不同条件寻找一个用户

  获得当前在线用户数量

  删除一个已经不再需要的帐户

 访问一个membership的属性

 找回一个用户的密码

 修改一个用户的密码

 修改一个用户的密码问题以及密码问题的答案

 为一个已经因为多次尝试密码失败而锁定的用户解除锁定。

 

角色管理

角色管理基于role类实现。

通过角色管理类,可以实现以下工作

新建一种角色

删除一种角色

给一个用户分配角色

去除一个用户的角色

判断用户是否被授权给一个特殊的角色

在一种角色中寻找一个用户

从一个用户信息中获得他所具有的角色信息

 

1.用户管理

创建用户

通过调用Membershipcreateuser方法,

可以创建用户。需要注意的是membership的密码要求长于7位,并且需要至少包括一个特殊字符。

 

用户登陆以及访问用户属性

下面使用Membershiip中的validateuser方法来确认用户是否合法。

• Membership还提供了getuser方法返回一个membershipuser类,用以对获得用户的属性信息。

 

用户登陆

用户帐户信息显示

 

更新用户属性

通过使用dataview和一个Membership相结合,可以方便的修改用户的注册信息。

更改用户信息演示

 

解除锁定

当用户尝试密码次数过多时,系统会把用户的帐户锁定,可以通过Membershipuserislockout属性来判断用户是否被锁定,如果用户被锁定了,可以使用unlockuser方法来解除锁定。

解除用户锁定

 

删除用户

可以通过调用Membershipdeleteuser方法来删除一个用户。并通过返回值来判定删除是否成功。

删除用户

 

2.角色管理

角色管理是基于认证用户身份与权限的一种管理方式。下面的几个例子使用角色管理

添加和删除角色

通过使用rolescreateroledeleterole方法我们可以添加和删除角色,同时还可以调用

 

为用户配置角色属性

可以通过roles类的addusertoroleremoveuserfromrole方法来为用户指定一个角色或者移除一个角色

 

使用rolemanage对页面进行授权

还可以通过使用role manage对指定角色的用户进行页面授权。

通过在web.config里进行配置

用户授权页测试

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值