为自定义的基于窗体的身份验证配置 ASP.NET 应用程序。
配置结构的示例:
<configuration>
<system.web>
<authentication>
<forms>
<forms name="name"
loginUrl="url"
protection="All|None|Encryption|Validation"
timeout="30"
path="/"
requireSSL="true|false"
slidingExpiration="true|false">
<credentials passwordFormat="format"/>
</forms>
属性 | 选项 | 描述 |
---|---|---|
name | 指定用于身份验证的 HTTP Cookie。在默认情况下,name 的值为 .ASPXAUTH。如果在单个服务器上运行多个应用程序,且每个应用程序都需要唯一的 Cookie,那么您必须在每个应用程序的 Web.config 文件中配置 Cookie 名。 | |
loginUrl | 指定了未找到有效的身份验证 Cookie 时为了登录而将请求重定向到的 URL。默认值为 default.aspx。 | |
protection | 指定用于 Cookie 的加密类型(如果有)。 | |
All | 指定应用程序同时使用数据验证和加密来保护 Cookie。该选项使用已配置的数据验证算法(基于 <machineKey> 元素)。如果 Triple-DES (3DES) 可用且密钥足够长(48 字节或更多),则在加密时使用 Triple-DES。All 是默认(也是推荐)值。 | |
None | 指定了对于仅为个性化而使用 Cookie 的站点或安全要求较低的站点,同时禁用加密和验证。建议不要按这种方式使用 Cookie;不过,这是使用 .NET Framework 启用个性化的资源密集程度最低的方法。 | |
Encryption | 指定使用 Triple-DES 或 DES 加密 Cookie,但不对 Cookie 执行数据验证。以这种方式使用的 Cookie 容易受到明文攻击方式的攻击。 | |
Validation | 指定了使用验证方案来验证加密的 Cookie 的内容在传输过程中未更改。该 Cookie 是通过下列方式使用 Cookie 验证创建的:连接带有 Cookie 数据的验证密钥、计算消息验证代码 (MAC),并将 MAC 追加到发送 Cookie 中。 | |
timeout | 指定以整数分钟计算的 Cookie 的过期时间。默认值为 30 分钟。如果 SlidingExpiration 属性为 |
|
path | 指定了由应用程序产生的 Cookie 路径。默认值为斜线 (/),因为多数浏览器都是区分大小写的,如果路径大小写不匹配将不会返回 Cookie。 | |
requireSSL | 指定传输身份验证 Cookie 时是否需要加密的连接。 | |
true | 指定需要加密的连接以保护用户的凭据。如果为 |
|
false | 指定传输 Cookie 时不需要加密的连接。默认值是 |
|
slidingExpiration | 指定是否启用滑动过期。对于单个会话中的每一个请求,滑动过期将活动的 Cookie 的时间重置为过期。 | |
true | 指定启用滑动过期。身份验证 Cookie 会被更新,且单个会话中随后请求的过期时间也会被重置。ASP.NET 1.0 版的缺省值为 |
|
false | 指定了禁用滑动过期,并指定 Cookie 在到达设置的时间间隔(离最初产生的时间)时过期。默认值为 |
子标记 | 描述 |
---|---|
<credentials> | 允许在配置文件中定义名称和密码凭据。您还可以实现自定义的密码方案来使用外部源(如数据库)控制验证。 |
如果在服务器上运行多个应用程序,必须在 Web.config 文件中为每个应用程序配置 <forms> 属性。
下例为基于窗体的身份验证配置站点、指定从客户端传输登录信息的 Cookie 名称、并指定在初始身份验证失败时使用的登录页的名称。
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="401kApp" loginUrl="/login.aspx">
<credentials passwordFormat = "SHA1"
<user name="UserName"
password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
</credentials>
</forms>
</authentication>
</system.web>
</configuration>
© 1997-2003 Microsoft Corporation。保留所有权利。