我有一个使用新身份模型的ASP.Net MVC 5应用程序。一切看起来都在工作,但是,用户的角色集合始终不包含任何项目,User.IsInRole始终返回false。
我可以使用UserManager.AddToRole(identity, "Admin");
该模型似乎是正确的: http://imgur.com/0csxrZm
我尝试在数据库上下文类中强制执行Lazy Loading,但这没有任何区别。
我是否需要执行任何其他配置步骤才能将角色与用户相关联?我正在使用开箱即用的IdentityRole类,我的标准ApplicationUser类继承了IdentityUser。
任何帮助都会非常感激,因为我已经浪费了太多时间。
答案 0 :(得分:2)
事实证明,由于我在类的构造函数中将LazyLoadingEnabled设置为true,因此缺少Lazy Loading是一个问题。
需要在onmodelcreating方法中启用延迟加载:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
this.Configuration.LazyLoadingEnabled = true;
感谢所有输入人员。
答案 1 :(得分:0)
您是否使用roleManager.Create(new IdentityRole("Admin"));
roleManager.Create(new IdentityRole("NonAdmin"));
等内容创建了角色?
使用该代码首次加载应用程序时,最好创建角色。