В MVC2 я сталкиваюсь с ситуацией, когда моя проверка HttpContext.User.IsInRole (xxx) сразу после вызова FormsService.SignIn возвращает false, но при последующем вызове Page.User.IsInRole (xxx) возвращает true, чтоверно.Не могу понять, что происходит.Вот код:
Контроллер учетных записей:
if (MembershipService.ValidateUser(model.UserName, model.Password))
{
FormsService.SignIn(model.UserName, model.RememberMe);
if (HttpContext.User.IsInRole("Teacher")) //returns false, even when true
{
//set up custom user object
}
else
{
//set standard user object
}
....
}
Последующее представление:
<%
var teacher = Page.User.IsInRole("Teacher"); //returns true
%>
Конфиг:
<roleManager enabled="true" defaultProvider="MySqlRoleProvider" cacheRolesInCookie="false" createPersistentCookie="false" cookieProtection="All">
<providers>
<clear />
<add applicationName="myapp" connectionStringName="ApplicationServices" name="MySqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
</providers>
</roleManager>
Пробовал w / cacheRolesInCookieправда и ложь, без разницы.
Что мне не хватает?
Спасибо за любые идеи!