【问题标题】:System.Web.Security.Roles.GetRolesForUser(currentUser.Identity.Name) just one time works trueSystem.Web.Security.Roles.GetRolesForUser(currentUser.Identity.Name) 仅一次有效
【发布时间】:2013-04-20 08:07:57
【问题描述】:
在 Internet mvc 4 项目中,当以调试模式运行项目并登录到应用程序时,将识别之前分配的用户角色。我用于获取用户角色的功能是:
System.Web.Security.Roles.GetRolesForUser(currentUser.Identity.Name)
但是当我停止调试并再次在调试模式下运行应用程序时,用户已通过身份验证,但 GetRolesForUser 返回字符串 [0]。为什么会发生并且不返回角色?
【问题讨论】:
标签:
asp.net-mvc-4
roles
roleprovider
【解决方案1】:
我遇到了同样的问题,我修复了它,改变了寻找角色的方式:
var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new PlutusDbContext()));
var user = manager.FindByName(currentUser.Identity.Name);
var userRoles = manager.GetRoles(user.Id);
PS:我使用的是 Microsoft.AspNet.Identity 2.0.1