为角色管理配置应用程序。
此元素是 .NET Framework 2.0 版中的新元素。
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>