2016-10-07 9 views
0

文字列の代わりに整数ベースのキーを使用するようにASP.NET IDをカスタマイズしようとしています。コードはコンパイルされますが、アプリケーションを実行すると型制約違反でエラーがスローされます。AspNet Identity MVC6型制約を無効にする

public class AppUser: IdentityUser<int, AppUserClaim, AppUserRole, AppUserLogin> 
{ 
    public DateTime FirstTrip { get; set; } 
} 

public class AppRole : IdentityRole<int, AppUserRole, AppRoleClaim> 
{ 
} 

public class AppUserClaim : IdentityUserClaim<int> 
{ 
} 

public class AppRoleClaim : IdentityRoleClaim<int> 
{ 
} 

public class AppUserLogin : IdentityUserLogin<int> 
{ 
} 

public class AppUserRole : IdentityUserRole<int> 
{ 
} 

public class AppUserToken : IdentityUserToken<int> 
{ 
} 

マイAppDbContextクラス:私は実行すると

services.AddIdentity<AppUser, AppRole>(config =>     //register ASPNET Identity 
     { 
      config.User.RequireUniqueEmail = true; 
      config.Password.RequiredLength = 8; 
      config.Cookies.ApplicationCookie.LoginPath = "/Auth/Login";  
     }) 
     .AddEntityFrameworkStores<AppDbContext, int>();      

public class AppDbContext: IdentityDbContext<AppUser,AppRole, int, AppUserClaim, AppUserRole, AppUserLogin, AppRoleClaim, AppUserToken> 
{ 
    //other code 
} 

そして、ここでは、私は私のstartup.csクラスのアイデンティティーを設定しています方法です。ここに私のアイデンティティクラスがどのように見えるかですアプリは、私は次のエラーが表示されます: enter image description here

このsetu私は何をしないのです

Why does this violate the type constraint?

ASP.NET identity configuration exception and that breaks dotnet.exe run process

:Pは次のよ​​うにいくつかの提案に沿ったものですか?

1)カスタムUSERSTORERoleStore変更処理鍵を考慮して実装します。

答えて

0

は、同様の問題に実行している人にとって、ここで私はそれを動作させるしなければならなかったものです。

2)startup.csのConfigureServicesメソッドにカスタムUserStoreとRoleStoreを登録します。だから、代わりに提案の、

services.AddIdentity<AppUser, IdentityRole>() 
     .AddEntityFrameworkStores<AppDbContext, int>(); 

は、以下を使用し、

services.AddIdentity<AppUser, IdentityRole>() 
     .AddUserStore<AppUserStore<AppDbContext>>() 
     .AddRoleStore<AppRoleStore<AppRole, AppDbContext>>(); 

カスタムユーザーおよびロールストアの実際の実装を探しているなら、あなたは非常に(次のリンクをチェックアウトすることができますPR1の底面図):

https://github.com/aspnet/Identity/issues/970

関連する問題