我有一个ASP.NET MVC 5应用程序。我正在使用标准的ASP.NET Identity提供程序进行用户和角色管理。重要的是,我正在使用来自自己的存储库项目的IdentityUser,但这似乎没问题。我可以注册、登录、编辑用户并管理他们的角色。
我使用以下代码将用户添加到角色中:
UserManager.AddToRole(userdetail.Id, r);
db.Entry(userdetail).State = EntityState.Modified;
db.SaveChanges();
这似乎在数据库级别上运作正常。
但是,我无法使用基于角色的身份验证,实际上是最简单的。
HttpContext.User.IsInRole("Administrator")
也不起作用。
[Authorize(Roles="Administrator")]
也不起作用。
我只能用这种方法来检查用户是否是管理员:
UserManager.IsInRole(userID, "Administrator").
为什么?
我找到的每个教程都可以正常工作。不同的项目仓库可能是原因吗?或者ASP.NET Identity出了很多问题?
请给予建议,