|
ASP.NET2.0安全性——角色控制与管理的概述和实现
角色控制与管理
• 认证与授权机制
• 使用用户管理控件
• 成员资格与角色管理
一、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进行加密。
|