2016-07-12 4 views
0

私は、カスタムIDの自動化と認証が必要なプロジェクトを開始しようとしています。単純な登録のためのasp.netの身元認証 - asp.net mvc

私はこの質問をしています。

DBContextクラスから継承するExampleDBContextクラスを作成するにはどうすればよいですか? Startup.Auth.csで何をする必要があるのですか?そして、登録のために、登録テーブルの名前は何であり、列は何であるべきですか?他のテーブルとその列はそこにある必要がありますか?

アイデンティティ認証に関連する情報はたくさんありますが、実際には有用なものはありません。おかげ

答えて

0

は私はわからないが、私はあなたがこのような何かをしたいと思う:

ExampleDbContext.cs

public class ExampleDbContext : IdentityDbContext<User>, IExampleDbContext 
{ 
    public ExampleDbContext() 
     : base("yourConnectionStringName", throwIfV1Schema: false) 
    { 
    } 

    public static ExampleDbContext Create() 
    { 
     return new ExampleDbContext(); 
    } 



    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 
     modelBuilder.Entity<User>().ToTable("Users"); 
     modelBuilder.Entity<IdentityRole>().ToTable("Roles"); 
     modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles"); 
     modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins"); 
     modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims"); 
    } 

    void IDisposable.Dispose() 
    { 
     this.Dispose(); 
    } 
} 

あなたがテーブルを生成するコードの最初の方式を使用することができます。つまり、ユーザーのモデルを自由にカスタマイズすることができます。ここで

User.csあなたは、私はいくつかのカスタムフィールド(姓)を追加したことを確認することができますし、最初のコードを使用する場合は、生成することができ、ユーザーに

public class User : IdentityUser 
{ 
     public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<User> manager) 
     { 
      // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType 
      var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 
      // Add custom user claims here 
      return userIdentity; 
     } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
} 

の例です。カスタムUsersテーブルを作成し、認証に使用します。 Startup.Auth.csに何も追加する必要はなく、依存関係注入を正しく設定するだけです。

関連する問題