gpt4 book ai didi

asp.net-mvc - 如何在asp.net mvc 5中添加角色和用户?

转载 作者:行者123 更新时间:2023-12-02 04:32:08 26 4
gpt4 key购买 nike

我想在asp.net mvc项目中添加用户授权和身份验证。我是 Entity Framework 代码优先。现在我想为其创建一些默认用户和默认角色。为此,我想创建一个管理员角色,但名为 admin 和 Admin 的用户和角色已经存在,这阻止了我。但是当我在数据库表中看到 AspNetUSers 、 Role 等时,我没有找到任何名为 Admin 的表。那么我该怎么做呢?

如果内置了管理员角色和用户,那么密码在哪里。另外,当我的应用程序首次运行时,如何创建一些其他默认用户和角色。

我使用的是 MVC 5,而不是 mvc 4。这两者有区别。

谢谢

阿卜杜勒·萨拉姆·阿扎德

最佳答案

由于没有人回答您的问题,我想我会添加一些代码来展示如何通过迁移时的种子方法执行此操作。此代码用于在数据库中植入具有管理员角色的初始用户。就我而言,只有“管理员”用户可以向网站添加新用户。

protected override void Seed(PerSoft.Marketing.Website.Models.ApplicationDbContext context)
{
const string defaultRole = "admin";
const string defaultUser = "someUser";

// This check for the role before attempting to add it.
if (!context.Roles.Any(r => r.Name == defaultRole))
{
context.Roles.Add(new IdentityRole(defaultRole));
context.SaveChanges();
}

// This check for the user before adding them.
if (!context.Users.Any(u => u.UserName == defaultUser))
{
var store = new UserStore<ApplicationUser>(context);
var manager = new UserManager<ApplicationUser>(store);
var user = new ApplicationUser { UserName = defaultUser };
manager.Create(user, "somePassword");

manager.AddToRole(user.Id, defaultRole);
}
else
{
// Just for good measure, this adds the user to the role if they already
// existed and just weren't in the role.
var user = context.Users.Single(u => u.UserName.Equals(defaultUser, StringComparison.CurrentCultureIgnoreCase));
var store = new UserStore<ApplicationUser>(context);
var manager = new UserManager<ApplicationUser>(store);
manager.AddToRole(user.Id, defaultRole);
}
}

关于asp.net-mvc - 如何在asp.net mvc 5中添加角色和用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22801862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com