当前位置:首页>网络学院>程序开发>ASP.NET教程>文章内容

asp.net 2.0教程 成员资格和角色管理

[ 来源:http://www.it55.com | 作者: | 时间:2007-10-08 | 收藏 | 推荐 ] 【

尊重作者,请保留 www.it55.com 链接字样。 免费网页模版下载http://www.it55.com

每一个完善的网站管理系统都应该包括用户管理、角色管理,都包含用户注册、密码修改、用户登录、身份验证等功能。在asp.net 1.x时代,程序员为了这些常用的功能反复做着重复性的工作,今天的asp.net 2.0替我们封装了这些常用控件及机制,给我们带来了诸多便利。接下来两节我们就来学习这方面的内容。
这一节我们讲述asp.net 2.0的成员资格和角色管理部分。

免费壁纸下载http://www.it55.com


1、asp.net的身份验证方式
asp.net的身份验证方式有4种:Windows验证、Passport验证、None验证、Forms验证。在我们的Web应用程序开发中,Forms验证方式是最常用的,所以这里我们只涉及Forms验证。
asp.net 2.0网站的身份验证信息除了可以像常规程序那样保存在Cookie中之外,还提供了一种Url保存会话的方案,即“无Cookie会话功能”。“无Cookie会话功能”是为了避免客户端因为屏蔽了Cookie功能而无法进行身份验证的情况而设计的,但是这个功能同时也带来了安全隐患,所以仍然建议使用Cookie会话方案。
基于Forms的身份验证时,需要设置Web.config网站配置文件,设置<system.web>元素下的<authentication> 元素的 <forms> 子元素: sflj http://www.it55.com kg^&fgd

    <authentication mode="Forms">
      <forms name=".VS2005_Form" loginUrl="~/Security/Login.aspx" defaultUrl="~/Default.aspx"
           protection="All" timeout="30" path="/" requireSSL="false"
           slidingExpiration="true" enableCrossAppRedirects="false"
           cookieless="UseDeviceProfile">
      </forms>
    </authentication>

IT资讯之家 http://www.it55.com

<forms>元素的属性说明如下
1) cookieless - 身份验证可以将 Forms 身份验证票存储在 Cookie 中也可以以无 Cookie 的表示形式存储在 URL 上。有效值如下:
   ·UseDeviceProfile - 默认值表示 ASP.NET 根据预先计算得到的浏览器配置文件来确定存储票证的位置。
   ·AutoDetect - 选项使 ASP.NET 动态确定浏览器是否支持 Cookie。
   ·UseUri - 强制实施无 Cookie 票证
   ·UseCookies - 强制实施有 Cookie 票证。
2) defaultUrl - 指定在成功登录后,请求将重定向到的默认 URL。
3) domain - 指定包含 Forms 身份验证票的 HttpCookie 的 Domain 属性的值。显式设置此属性可使应用程序共享同一个 Cookie,前提是这些应用程序共享某个 DNS 命名空间的一个公共部分(例如,如果 domain 属性设置为“cnblogs.com”,则 webabcd.cnblogs.com 和 dudu.cnblogs.com可以共享一个 Cookie)。
4) enableCrossAppRedirects - Forms 身份验证允许以查询字符串变量或窗体 POST 变量的形式在应用程序之间传递 Forms身份验证票。将此属性设置为 true 可使 FormsAuthenticationModule 能够从查询字符串或窗体 POST 变量提取票证。

免费设计素材下载http://www.it55.com

5) loginUrl - 指定未经身份验证的用户的请求将被重定向到的 URL。该 URL 可以在同一台计算机上或在远程计算机上。如果是在远程计算机上,则两台计算机上 machineKey 配置元素中的 decryptionkey 和 validationKey 属性都需要使用相同的值。
6) name - 用于身份验证的 HTTP Cookie 的名称。注意,如果多个应用程序需要在一台计算机上使用基于窗体的身份验证服务,并且每个应用程序都希望由应用程序隔离 Forms 身份验证 Cookie,则每个应用程序都应配置一个唯一的 Cookie 值。为避免在 URL 中产生依赖项,在设置身份验证 Cookie 时,ASP.NET 还使用“/”作为 Path 值,以便将这些 Cookie 发送回站点上的每个应用程序。
7) path - 用于发出的 Cookie 的路径。默认值为“/”,以避免路径中大小写不匹配的造成的困难,因为在返回 Cookie 时,浏览器是严格区分大小写的。共享服务器环境中的应用程序应使用此指令来维护专用 Cookie。(它们还可以使用 API 在运行时指定路径来发出 Cookie。)
8) protection - 用于保护 Cookie 数据的方法。有效值如下:
   ·All - 同时使用数据验证和加密来保护 Cookie。所配置的数据验证算法是基于 <machinekey> 元素的。如果密钥足够长(48 个字符),默认情况下将使用 AES 进行加密。All 是默认(和建议)值。 免费矢量图片素材下载http://www.it55.com
   ·None - 用于仅将 Cookie 用于个性化设置并且安全性要求不高的站点。加密和验证都可以被禁用。尽管以此方式使用 Cookie 需谨慎,但对于使用 .NET Framework 实现个性化设置的任何方法,此设置提供了最佳性能。
   ·Encryption - 使用 AES、TripleDES 或 DES 加密 Cookie,但不对 Cookie 进行数据验证。这类 Cookie 容易受到精心选择的纯文本的攻击。
   ·Validation - 不加密 Cookie 的内容,但验证 Cookie 数据在传输过程中是否未被更改。若要创建 Cookie,验证密钥在缓冲区中与 Cookie 数据连接,并且计算出 MAC 并将其追加到输出的 Cookie。
9) requireSSL - 如果设置为 true,则 Forms 身份验证会设置 Forms 身份验证 Cookie 的安全位。兼容的浏览器只将 Cookie 通过 SSL 连接发送回 ASP.NET。注意,如果使用无 Cookie Forms 身份验证,则此设置无效。
10) slidingExpiration - 如果设置为 true,则 Forms 身份验证将定期更新 Forms 身份验证票的生存期。无论票证是包含在 Cookie 中,还是以无 Cookie 的格式包含在 URL 中,都会进行此操作。
11) timeout - 时间量(以整数分钟为单位),经过该时间量之后,Cookie 则会过期。默认值是 30。超时属性是一个可调值,从收到上次请求的时间开始计算,它将在 n 分钟后过期。为了避免对性能产生负面影响,也为了避免那些打开了 Cookie 警告的应用程序产生多个浏览器警告,Cookie 在超时时间过半时更新。(这意味着在某些情况下可能会出现精度损失。)

(编辑:IT资讯之家 www.it55.com

返回顶部
共4页: 上一页 1 [2] [3] [4] 下一页  

网友评论

[以下评论为网友观点,不代表本站。请自觉遵守互联网相关政策法规,所有连带责任均有评论者自负。]
[不超过250字]