Roles.CacheRolesInCookie 属性

定义

获取一个值,该值指示当前用户的角色是否已缓存在某个 Cookie 中。

public:
 static property bool CacheRolesInCookie { bool get(); };
public static bool CacheRolesInCookie { get; }
static member CacheRolesInCookie : bool
Public Shared ReadOnly Property CacheRolesInCookie As Boolean

属性值

如果当前用户的角色已缓存在某个 Cookie 中,则为 true;否则,为 false。 默认值为 true

示例

以下示例演示 ASP.NET 应用程序的 Web.config 文件的 节中的 system.webroleManager 元素。 它指定应用程序使用 SqlRoleProvider 实例并将 属性 cacheRolesInCookie 设置为 true

<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="MyApplication" />
   </providers>
</roleManager>

注解

当 Web.config 文件中的 CacheRolesInCookie 属性设置为 true 时,每个用户的角色信息将存储在 Cookie 中。 当角色管理检查用户是否处于特定角色时,会在调用角色提供程序以检查数据源中的角色列表之前检查角色 Cookie。 该 Cookie 会动态更新,以缓存最近验证的角色名称。

配置 ASP.NET 角色时,可以通过指定 CookieProtectionValue 属性来提高 cookie 中缓存的角色名称的可靠性。 默认值为 CookieProtectionValueAll,用于加密 Cookie 中的角色名称,并验证 Cookie 内容是否未更改。

注意

由于角色名称可以独立于数据源进行缓存,因此对数据源中角色管理的更改可能不会反映在缓存的值中。 在这种情况下,用户必须关闭并重新打开其浏览器以清除缓存的 Cookie 值。

适用于

另请参阅