asp.net-mvc - ASP.Net MVC 5 身份角色添加到数据库但 User.IsInRole 总是返回 false

标签 asp.net-mvc authentication authorization asp.net-mvc-5 identity

我有一个使用新身份模型的 ASP.Net MVC 5 应用程序。一切看起来都在工作,但是,用户的角色集合始终不包含任何项目,并且 User.IsInRole 始终返回 false。

我可以使用 UserManager.AddToRole(identity, "Admin"); 成功地为用户添加角色

这会产生:http://imgur.com/vobtgO2

该模型似乎是正确的:
http://imgur.com/0csxrZm

我试过在 Database Context 类中强制延迟加载,但这没有任何区别。

是否需要执行任何其他配置步骤来将角色与用户关联?我正在使用开箱即用的 IdentityRole 类,而我的标准 ApplicationUser 类继承了 IdentityUser。

任何帮助将不胜感激,因为我已经浪费了太多时间。

最佳答案

事实证明,问题在于缺少延迟加载,尽管我在类的构造函数中将 LazyLoadingEnabled 设置为 true。

需要在 onmodelcreating 方法中启用延迟加载:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        this.Configuration.LazyLoadingEnabled = true;

感谢您的所有投入。

关于asp.net-mvc - ASP.Net MVC 5 身份角色添加到数据库但 User.IsInRole 总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22917665/

相关文章:

MultiSelectList 中的 C# .NET 查询不起作用

asp.net-mvc - 更改 ASP.NET MVC 项目中的 Visual Studio 默认浏览器

javascript - 如何在 Angular JS 中验证状态

C# 基于 cookie 的授权

c# - 在没有 DTO 类的情况下发布多个参数

web-services - 如何在 RESTful Web 服务中实现登录?

Mysql无密码登录、有密码被拒绝

python - Django 授权 - 在函数调用中返回重定向

php - Apache "destroying"授权 header

javascript - 将 Base64 图像发布到 Mvc Controller