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 值。

适用于

另请参阅