roleManager 元素(ASP.NET 设置架构),我是因为SSL弱密码(转)

时间:2024-05-12 14:06:50

为角色管理配置应用程序。

此元素是 .NET Framework 2.0 版中的新元素。

configuration 元素(常规设置架构)
  system.web 元素(ASP.NET 设置架构)
    roleManager 元素(ASP.NET 设置架构)

<roleManager
cacheRolesInCookie="true|false"
cookieName="name"
cookiePath="/"
cookieProtection="All|Encryption|Validation|None"
cookieRequireSSL="true|false "
cookieSlidingExpiration="true|false "
cookieTimeout="number of minutes"
createPersistentCookie="true|false"
defaultProvider="provider name"
domain="cookie domain">
enabled="true|false"
maxCachedResults="maximum number of role names cached"
<providers>...</providers>
</roleManager>

下面几部分描述了本节涉及的属性、子元素和父元素。

属性

属性 说明

cacheRolesInCookie

可选的 Boolean 属性。

指定当验证某个用户是否在特定角色中时,先检查 Cookie,然后使用角色提供程序在数据源中检查角色列表。如果为 true,则缓存当前用户的 Cookie 中的角色名称列表;否则为false

默认值为 false

cookieName

可选的 String 属性。

指定存储角色名称的 Cookie 的名称。

默认值为 ".ASPXROLES"

cookiePath

可选的 String 属性。

角色名称 Cookie 的路径。

默认值为 "/"

cookieProtection

可选的 CookieProtection 属性。

指定 CookieProtection 枚举值之一。

默认值为 All 值。

cookieRequireSSL

可选的 Boolean 属性。

指定角色名称 Cookie 是否需要使用 SSL 来发送到服务器。

如果设置为 true,则角色名称 Cookie 需要使用 SSL 来发送到服务器。

默认值为 false

cookieSlidingExpiration

可选的 Boolean 属性。

指定是否将定期重置角色名称 Cookie 的过期日期和时间。

如果设置为 true,则 Cookie 的过期日期和时间最初将设置为当前日期和时间与 CookieTimeout 值(分钟)的加和。当用户继续主动地使用 ASP.NET 应用程序时,Cookie 的过期日期和时间将在剩余时间不足 CookieTimeout 值的一半时自动更新。有关更多信息,请参见 Expires

默认值为 true

cookieTimeout

可选的 Int32 属性。

角色名称 Cookie 过期之前的时间(分钟)。

默认值为 "30"(分钟)。

createPersistentCookie

可选的 Boolean 属性。

指定角色名称 Cookie 是否为会话 Cookie;即,该 Cookie 会在浏览器关闭时丢失。

如果设置为 true,则角色名称 Cookie 是可跨多个浏览器会话使用的持久性 Cookie。持久性 Cookie 的过期日期和时间设置为当前的日期和时间与 CookieTimeout 值(分钟)的加和。

默认值为 false

defaultProvider

可选的 String 属性。

默认角色提供程序的名称。有关更多信息,请参见 Provider

默认值为 "AspNetSqlRoleProvider"

domain

可选的 String 属性。

指定角色名称 Cookie 的 Domain 值。

默认值为 HttpCookie 属性默认值,该值为空字符串 ("")。

enabled

可选的 Boolean 属性。

指定是否要启用角色管理。

如果设置为 true,则启用角色管理。

在 Machine.config 文件中,默认值为 false

maxCachedResults

可选的 Int32 属性。

指定缓存在角色 Cookie 中的角色名称的最大数目。

默认值为 25

继承的属性

可选的属性。

由所有 section 元素继承的属性。有关更多信息,请参见节元素所继承的常规属性

子元素

元素 说明

providers

可选的元素。

为角色管理定义一个角色提供程序的集合。

父元素

元素 说明

configuration

指定公共语言运行库和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。

system.web

为 ASP.NET 配置节指定根元素。

roleManager 元素为角色管理配置应用程序。

有关访问和修改应用程序代码中 roleManager 元素的配置值的信息,请参见 RoleManagerSection

下面的默认 roleManager 元素不是在 Machine.config 文件或根 Web.config 文件中显式配置的。但是,它是应用程序返回的默认配置。提供程序在 Machine.config 文件中是显式配置的。

<roleManager
enabled="false"
cacheRolesInCookie="false"
cookieName=".ASPXROLES"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="false"
cookieSlidingExpiration="true"
cookieProtection="All"
defaultProvider="AspNetSqlRoleProvider"
createPersistentCookie="false"
maxCachedResults="25">
<providers>
<clear />
<add
connectionStringName="LocalSqlServer"
applicationName="/"
name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add
applicationName="/"
name="AspNetWindowsTokenRoleProvider"
type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>

下面的代码示例演示如何配置一个 ASP.NET 应用程序,以使用 SqlRoleProvider 类来存储和检索角色信息。

<configuration>
<system.web>
<roleManager defaultProvider="SqlProvider"
enabled="true"
cacheRolesInCookie="true"
cookieName=".ASPROLES"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="false"
cookieSlidingExpiration="true"
cookieProtection="All" >
<providers>
<add
name="SqlProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="SqlServices"
applicationName="SampleApplication" />
</providers>
</roleManager>
</system.web>
</configuration>

配置节处理程序

RoleManagerSection

配置成员

RoleManager

可配置的位置

Machine.config

根级别的 Web.config

应用程序级别的 Web.config

要求

Microsoft Internet 信息服务 (IIS) 版本 5.0、5.1 或 6.0

.NET Framework 2.0 版

Microsoft Visual Studio 2003 或 Visual Studio 2005