我有一个ASP.NET MVC5应用程序。我使用标准的ASP.NET身份提供者进行用户和角色管理。使用自己的存储库项目中的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身份被破坏得如此之深?
敬请指教,
https://stackoverflow.com/questions/20132795
复制相似问题