Roles.CacheRolesInCookie 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取一个值,该值指示当前用户的角色是否已缓存在某个 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.web
roleManager 元素。 它指定应用程序使用 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 值。