3

在我的 web.config 中,我将角色管理器配置如下:

<roleManager enabled="true" cacheRolesInCookie="true" cookieName=".ASPROLES" 
cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" 
cookieSlidingExpiration="true" cookieProtection="All">

但是,在我们的自定义 RoleProvider 中,似乎总是调用 GetRolesForUser 方法,而不是像我预期的那样, RoleManager 从其 cookie 中提供角色。

我们正在使用类似的东西来获取用户的角色:

string[] myroles = Role.GetRolesForUser("myuser");

我在配置中或在使用 RoleManager 时是否缺少某些东西

4

2 回答 2

4

defaultProvider="yourRoleProviderName"您的 web.config中缺少您。

您是否为任何用户或仅为当前用户调用以下方法?Cookie 缓存仅适用于当前用户角色。

Role.GetRolesForUser("myuser");

IsInRole在第一次调用orGetRoles方法后检查 .ASPROLES cookie 是否发送到浏览器。

于 2010-11-22T13:12:00.583 回答
1

如果您将 to 中的值更改cacheRolesInCookietrue.

于 2009-05-07T17:42:32.520 回答