ASP.net MVC + ASP.net身份播种角色和用户

超级网络

在“迁移配置”类中,有“种子”方法,它看起来像:

protected override void Seed(DatabaseContext context)
        {
           var  roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
           var  userManager = new UserManager<User>(new UserStore<User>(context)); 

            if (!roleManager.RoleExists("Administrator"))
            {
                roleManager.Create(new IdentityRole("Administrator"));
            }

            var user = new User {UserName = "someUserName"};


            if (userManager.FindByName("someUserName") == null)
            {
                var result = userManager.Create(user, "password");

                if (result.Succeeded)
                {
                    userManager.AddToRole(user.Id, "Administrator");
                }    

            }
            }

然后在PM控制台中,我运行了update-database,它成功地为数据库添加了种子,在表AspNetUserRoles中,我可以看到用户someUserName和Administrator角色已连接。

但是,当我将属性[Authorize(Roles = "Administrator")]放在控制器上方,我已被重定向到登录页面,就好像我的用户没有担任该角色一样,因此我在控制器中添加了以下行:

var x = _userManager.IsInRole(_userManager.FindByName("someUserName").Id, "Administrator");

x是错误的。为什么会这样呢?我该如何解决?如果这不是种数据库的正确方法,那是?

尼罗什·加亚尔

尝试您的种子方法

 context.Configuration.LazyLoadingEnabled = true;

这是我对禁用延迟加载时的情况的猜测,当UserManager或UserStore访问该对象时,IdentityUser/ApplicationUser对象的Roles属性为null或为空,因为该集合未手动加载。然后,该代码继续进行,就像实际上从未从未加载过集合一样,没有将角色分配给用户一样。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Model Validation in asp .net MVC

来自分类Dev

ASP.NET MVC或者基于用户角色的渲染EditorFor

来自分类Dev

ASP.NET MVC 5身份和Azure

来自分类Dev

多站点中的ASP.NET身份用户和角色

来自分类Dev

用户个人头像asp.net MVC身份

来自分类Dev

ASP.NET MVC授权具有多个角色的用户

来自分类Dev

ASP.Net MVC身份忘记密码

来自分类Dev

用户角色更改时,ASP.net身份OWIN cookie?

来自分类Dev

ASP.NET MVC身份默认实现

来自分类Dev

ASP.NET(MVC)用户,角色和角色中的用户

来自分类Dev

具有MVC Asp.net身份角色的用户列表

来自分类Dev

在ASP .NET MVC中更改角色权限

来自分类Dev

使用ASP.NET MVC Identity 2.0播种和登录默认用户的适当位置在哪里?

来自分类Dev

在ASP.NET MVC和Azure AD中创建自定义用户角色

来自分类Dev

Asp.net身份:登录时更改用户角色

来自分类Dev

尝试为Asp.Net mvc 5中的用户和角色播种数据时出错

来自分类Dev

ASP.Net MVC 5检查用户角色的_Layout

来自分类Dev

ASP.NET MVC,Actionlink

来自分类Dev

ASP.Net MVC SimpleMembershipProvider和使用角色

来自分类Dev

Asp.net MVC和用户

来自分类Dev

ASP.NET MVC 4用户身份验证

来自分类Dev

ASP.NET(MVC)用户,角色和角色中的用户

来自分类Dev

角色/用户的ASP.NET MVC黑名单

来自分类Dev

ASP.net MVC路由

来自分类Dev

Asp.net Mvc身份

来自分类Dev

ASP.NET MVC入门

来自分类Dev

ASP .NET MVC 5 根据角色和/或状态编辑表单

来自分类Dev

ASP.NET MVC 使用 Azure AD 身份验证——如何允许用户管理组/角色分配?

来自分类Dev

asp.net Mvc _Layout