Dec 19

角色控制与管理 不指定

zpgm , 22:16 , Asp.Net 2.0 , 评论(0) , 引用(0) , 阅读(1302) , Via 本站原创 | |
角色控制与管理

• 认证与授权机制

• 使用用户管理控件

• 成员资格与角色管理


一、ASP.NET 2.0 安全性

必要性

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

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



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

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



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

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

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

三、认证与授权

• 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>



1.Windows认证方式

• Window认证方式通过使用

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

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



2.Form认证方式

• 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>



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

Protection:Cookie被保存的方式

Path:Cookie的保存路径

TimeOut:Cookie的存活时间默认值是30分钟

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

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



Protection属性

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

All--同时使用Encryption和Validation

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

Encryption--使用des或者三层des对cookie进行加密,但是并不对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里,同样可以通过配置all和deny属性来对访问用户的Id,访问方法进行设定

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

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

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



• Form认证演示

使用用户管理控件

• Login,Loginstatus,CreateUserWizard控件

示例

• LoginView示例

• ChangePassword示例



四、成员管理

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

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

建立一个新的membershipuser  

可以对用户身份进行验证

 找回一个membershipuser实例

 更新一个membershipuser实例

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

 获得当前在线用户数量

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

访问一个membership的属性

找回一个用户的密码

修改一个用户的密码

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

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



角色管理

• 角色管理基于role类实现。

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

• 新建一种角色

• 删除一种角色

• 给一个用户分配角色

• 去除一个用户的角色

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

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

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



1.用户管理

创建用户

• 通过调用Membership的createuser方法,

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



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

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

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



• 用户登陆

• 用户帐户信息显示



更新用户属性

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

• 更改用户信息演示



解除锁定

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

• 解除用户锁定



删除用户

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

• 删除用户



2.角色管理

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

• 添加和删除角色

• 通过使用roles的createrole和deleterole方法我们可以添加和删除角色,同时还可以调用



为用户配置角色属性

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



使用rolemanage对页面进行授权

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

• 通过在web.config里进行配置

• 用户授权页测试

Tags: ,
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]