ASP.NET学习之Membership
ASP.NET Framework包含4个安全相关的框架:
* ASP.NET身份验证-用于验证用户有效性
* ASP.NET授权-用于授予用户请求特定资源的权限
* ASP.NET Membership-用于表示用户和修改他们的属性
* 角色管理器-用于表示用户角色和修改它们的属性
配置身份验证
身份验证是指鉴定来来访用户是否合法的过程。ASP.NET Framework支持三种验证类型
* Windows身份验证
* .NET Passport身份验证
* Forms身份验证
Forms身份验证启用后,通常会使用cookie来验证用户。一旦用户通过身份验证,一个加密的cookie信息会添加到用户的浏览器中。当该用户从一个页面进入另一个页面时,系统的身份验证程序将通过cookie来验证用户合法性。启用Forms身份验证后,用户和角色信息就会被保存到自定义的数据存储区域中,也就是说可以将用户信息保存到你所希望的任何地方。例如,可以将用户名和密码保存到数据库、XML文件甚至是纯文本文件中。
ASP.NET 3.5应用程序可以通过Membership来完成所有保存和获取用户信息的代码。
通过配置应用程序根目录下的Web配置文件,可以为我们的应用程序启用特定的验证类型。
<configuration>
<system.web>
<authentication mode="Forms"/>
</system.web>
</configuration>
配置Forms身份验证
Forms身份验证的几个配置选项如下:
* cookieless-使应用程序即使在浏览器不支持cookieless特性的情况下,也能使用Forms身份验证。可能的取值有UserCookies、UserUri、AutoDetect和UseDeviceProfile。默认值是UserDeviceProfile
* defaultUrl-用于指定用户通过身份验证后转向的页面。默认值是Default.aspx
* domain-用于指定与验证cookie相关的域。默认值是空字符串
* enableCrossAppRedirects-用于通过传递查询字符串中的验证凭证来在应用程序之间验证用户默认为false
* loginUrl-用于指定Login页面的路径。默认值是Login.aspx
* name-用于指定验证cookie的名字,默认值为.ASPXAUTH
* path-用于指定和验证cookie相关联的路径,默认值是/。
* protection-用于指定如何对验证cookie进行加密。可能的取值有All、Encryption、None和Validation。默认值是All
* requiresSSL-用于指定在传递验证cookie时是否需要使用SSL(安全套接字层)连接。默认值是false
* slidingExpiration-用于防止验证cookie在一段时间内的再次访问中过期。默认为true
* timeout-用于指定验证cookie在多少分钟后过期,默认为30
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="Myapp"/>
</authenticaion>
</system.web>
</configuration>