2017-02-27 4 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

関連する問題