0
我想在我的ASP.NET MVC應用程序中創建超級用戶。我讀到,我可以通過添加"admin"
角色來實現它,並通過過濾器檢查是當前用戶是否具有此角色。實體框架,創建超級用戶
我在教程中閱讀了如何在應用程序啓動時創建用戶和角色,但是在所有教程中他們不使用實體框架。於是,我就在Configuration.cs
文件中Migration
文件夾中創建超級用戶:
namespace WebApp.Migrations
{
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using System;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Linq;
using WebApp.Models;
internal sealed class Configuration : DbMigrationsConfiguration<WebApp.Models.ApplicationDbContext>
{
protected override void Seed(WebApp.Models.ApplicationDbContext context)
{
var userManager = new ApplicationUserManager(new UserStore<ApplicationUser>(context));
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
roleManager.Create(new IdentityRole { Name = "admin" });
var admin = new ApplicationUser { Email = "[email protected]", UserName = "Growapps" };
string password = "mail123";
var result = userManager.Create(admin, password);
if (result.Succeeded)
{
userManager.AddToRole(admin.Id, "admin");
}
}
}
}
但經過我添加的遷移和更新數據庫中的新用戶不會出現。我是否明白,每次遷移後Seed方法都會調用,並且應該創建一個新用戶?如果是的話,我做錯了什麼?如果沒有,當我的網絡應用第一次啓動時,我還可以添加超級用戶嗎?
您需要檢查if( userAlreadyexists)return;我在這裏沒有發現任何錯誤..你有什麼錯誤嗎?我想你的管理員obejct沒有要求所有字段(名字,姓氏)。請在Step7查看http://bitoftech.net/2015/03/11/asp-net-identity-2-1-roles-based-authorization-authentication-asp-net-web-api/ –