我正在使用ASP.NET MVC5和Identity API开发一个简单的应用程序。我想问一下,在创建表和启动应用程序时,如何在超级管理员角色中创建超级管理员帐户。我正在使用Visual Studio2013的默认ASP.NET MVC5 with Accounts模板,但我不确定如何实现我的目标。
发布于 2013-10-27 15:00:22
不要紧,我找到了这个有用的链接,它准确地显示了我想要的内容:
发布于 2016-07-21 23:34:20
我在Configuration
类的seed()
方法中这样做:
protected override void Seed(AuthContext context)
{
const string userName = "AdminUserName";
const string password = "AdminPassword";
const string roleName = "AdminRole";
const string phoneNumber = "PhoneNumber";
var appUserStore = new UserStore<ApplicationUser>(context);
var appUserManager = new UserManager<ApplicationUser>(appUserStore);
var appRoleManager = new ApplicationRoleManager(new RoleStore<IdentityRole>(context));
try
{
var user = context.Users.SingleOrDefault(u => u.UserName == userName);
var role = context.Roles.SingleOrDefault(r => r.Name == roleName);
if (role == null)
{
appRoleManager.CreateAsync(new IdentityRole(roleName)).Wait();
role = context.Roles.SingleOrDefault(r => r.Name == roleName);
}
if (user == null)
{
appUserManager.CreateAsync(new ApplicationUser { UserName = userName, PhoneNumber = phoneNumber}, password).Wait();
user = context.Users.SingleOrDefault(u => u.UserName == nationalCode);
}
var userRole = user.Roles.SingleOrDefault(r => r.RoleId == role.Id);
if (userRole == null)
{
appUserManager.AddToRoleAsync(user.Id, roleName).Wait();
}
}
catch (Exception ex)
{
// Error catched!
}
}
https://stackoverflow.com/questions/19615441
复制相似问题