2017-02-27 33 views
-1

我正在使用ASP.NET MVC和Visual Studio 2015的項目。我們正在使用Visual Studio附帶的預生成數據庫(我添加了其他表,但這應該不重要。)我正在創建一個我想定義爲「專家」角色的註冊頁面。我需要AspNetRole表將這個角色放在裏面。如果我只是直接輸入數據庫,我的其他項目成員將不會獲得這些信息。我已經找到了這個,但我得到的是如何爲管理員創建一個頁面,從字面上創建新的角色。我不要那個。我瞭解如何將用戶設置爲角色,但我需要先在我的數據庫中創建該角色。這是我的startup.cs文件中的東西嗎?我確定如何或在哪裏做到這一點。任何其他信息也會有所幫助,因爲我是與角色合作的新手。謝謝。如何將角色插入預先生成的ASP.NET數據庫

+0

當您初始化應用程序時,您可以檢查角色是否存在,如果沒有插入角色 – andrepaulo

+0

確切地說,我該怎麼做?這就是我所假設的,但我真的不知道該怎麼做。 – natemiklas1

+0

@ natemiklas1如果任何答案可以幫助你,請不要忘記簽署正確的答案! ;)希望它對你有幫助 – andrepaulo

回答

0

您可以在startup.cs使用。

using Microsoft.AspNet.Identity; 
using Microsoft.AspNet.Identity.EntityFramework; 

public void Configuration(IAppBuilder app) 
{ 
    ConfigureAuth(app); 
    CreateRoles(); 
} 


private void CreateRoles() 
{ 
    ApplicationDbContext _context = new ApplicationDbContext(); 

    var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(_context)); 

    // creating Creating Expertrole 
    if (!roleManager.RoleExists("Expert")) 
    { 
     var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole(); 
     role.Name = "Expert"; 
     roleManager.Create(role); 

    } 
} 
0

我類似的情況下所做的,是檢查是否在表中存在的角色,如果沒有,還說:

var context = new DatabaseContext(); 
if(!context.AspNetRoles.any(x=>x.role.equals("roleName"))){context.AspNetRoles.Add(new AspNetRoles{Role="roleName"}); context.SaveChanges();} 
//Follow the normal process, in that case now is created 
+0

你把這個放在哪裏? – natemiklas1

+0

在初始化應用程序的那一刻,在app_start中 – ORMorenO

相關問題