System.Web.Security.Roles.GetRolesForUser(currentUser.Identity.Name)只有一次工作正常

时间:2013-04-20 08:07:57

标签: asp.net-mvc-4 roles roleprovider

在互联网mvc 4项目中,当以调试模式运行项目并登录到应用程序时,之前分配的用户角色将被识别。我用来获取用户角色的功能是:

System.Web.Security.Roles.GetRolesForUser(currentUser.Identity.Name)

但是当我停止调试并再次在调试模式下运行应用程序时,用户被验证但GetRolesForUser返回字符串[0]。它为什么会发生并且不会返回角色?

1 个答案:

答案 0 :(得分: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