Share via


roleManager 元素(ASP.NET 设置架构)

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

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

<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

请参见

任务

如何:使用位置设置配置特定目录

如何:锁定 ASP.NET 配置设置

参考

system.web 元素(ASP.NET 设置架构)

roleManager 的 providers 元素(ASP.NET 设置架构)

configuration 元素(常规设置架构)

System.Configuration

System.Web.Configuration

RoleManagerSection

RoleManager

概念

了解角色管理

保证 ASP.NET 配置的安全

ASP.NET 配置方案

其他资源

常规配置设置 (ASP.NET)

ASP.NET 配置设置

ASP.NET 参考

ASP.NET 网站管理

ASP.NET 配置 API