我想自定義Asp.Net Identity 3類。

這是我做的:

public class MyDbContext : IdentityDbContext<User>

public class MyDbContext : IdentityDbContext<User>

我還擴展了IdentityUserClaim<int>, IdentityRole<int>, IdentityUserLogin<int> and IdentityUserRole<int>但是我收到以下錯誤:

public class MyDbContext : IdentityDbContext<User>

一般承認的答案

我不知道你是如何讓你的類繼承IdentityUser<int>因為`IdentityUser'的通用版本有更多的類型參數。點擊此處: https//msdn.microsoft.com/en-us/library/dn613256%28v=vs.108%29.aspx

所以,你需要:

public class User : IdentityUser<int, UserLogin, UserRole, UserClaim>

和:

public class User : IdentityUser<int, UserLogin, UserRole, UserClaim>

編輯:對於Identity 3.0,情況有點不同,但問題類似。根據: https//github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNet.Identity.EntityFramework/IdentityDbContext.cs

IdentityDbContext<TUser>是這樣的:

public class User : IdentityUser<int, UserLogin, UserRole, UserClaim>

重要的部分是where TUser : IdentityUser IdenityUser的定義是:

public class User : IdentityUser<int, UserLogin, UserRole, UserClaim>

並且您的User類繼承IdentityUser<int>因此它沒有隱式轉換為'IdentityUser',因為int / string區別。

解決方案是繼承IdentityDbContext<TUser, TRole, TKey> ,其中TUser將是您的User類, TRole將是新的Role類,其中iherits IdentityRole<int>TKeyint

public class User : IdentityUser<int, UserLogin, UserRole, UserClaim>

熱門答案

這應該足夠了:

public class ApplicationUser : IdentityUser<int>
{

}

public class ApplicationRole : IdentityRole<int>
{

}

public class MyDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, int>
{

}



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因