我很擅長於asp.net領域。所以我的問題也許可以在互聯網的任何地方得到答案,但他們都不瞭解流程的創建。這是問題。當網站初始化時創建默認用戶/管理員 - 身份
我試圖創建簡單的'網站項目',當這個網站啓動時,如果表格不存在,它應該在數據庫中創建所有必要的標識表。然後,我將角色添加到表中,並將一個用戶設置爲超級管理員。
任何人都可以幫助我解決這個問題或分享任何關於這個問題的鏈接。
我很擅長於asp.net領域。所以我的問題也許可以在互聯網的任何地方得到答案,但他們都不瞭解流程的創建。這是問題。當網站初始化時創建默認用戶/管理員 - 身份
我試圖創建簡單的'網站項目',當這個網站啓動時,如果表格不存在,它應該在數據庫中創建所有必要的標識表。然後,我將角色添加到表中,並將一個用戶設置爲超級管理員。
任何人都可以幫助我解決這個問題或分享任何關於這個問題的鏈接。
我假設你正在使用ASP.NET MVC。
您可以使用Database Initialization來播種您的數據庫。
public class MyDBInitializer : CreateDatabaseIfNotExists<ApplicationDBContext>
{
protected override void Seed(ApplicationDBContext context)
{
base.Seed(context);
}
}
在種子方法上,您可以填充數據庫併爲您的應用程序創建一個默認用戶。
protected override void Seed(ApplicationDBContext context)
{
// Initialize default identity roles
var store = new RoleStore<IdentityRole>(context);
var manager = new RoleManager<IdentityRole>(store);
// RoleTypes is a class containing constant string values for different roles
List<IdentityRole> identityRoles = new List<IdentityRole>();
identityRoles.Add(new IdentityRole() { Name = RoleTypes.Admin });
identityRoles.Add(new IdentityRole() { Name = RoleTypes.Secretary });
identityRoles.Add(new IdentityRole() { Name = RoleTypes.User });
foreach(IdentityRole role in identityRoles)
{
manager.Create(role);
}
// Initialize default user
var store = new UserStore<ApplicationUser>(context);
var manager = new UserManager<ApplicationUser>(store);
ApplicationUser admin = new ApplicationUser();
admin.Email = "[email protected]";
admin.UserName = "[email protected]";
manager.Create(admin, "1Admin!");
manager.AddToRole(admin.Id, RoleTypes.Admin);
// Add code to initialize context tables
base.Seed(context);
}
並在您的Global.asax.cs要註冊數據庫初始化
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
Database.SetInitializer(new MyDBInitializer());
}
注意,有不同類型的數據庫初始化策略,其行爲將取決於你的數據庫初始化。檢查上面的鏈接。
你使用的是實體框架嗎? –
我只是在創建項目時使用默認框架。因此,已經有登錄,引導等 – saf21
[使用ASP.NET Idenity創建默認用戶帳戶]的可能重複(http://stackoverflow.com/questions/19615441/create-a-default-user-account-using- asp-net-idenity) – vivek