Sea*_*ome 5 asp.net-mvc entity-framework entity-framework-6 asp.net-mvc-5 asp.net-identity
任何人都知道为什么UserManager.Create(user, password);
可能会抛出EntityValidationError
说Id
是必需的.
它可能与我有关UserManager
.设置如下:
public class MyAppDb : IdentityDbContext<ApplicationUser, ApplicationRole, string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
public static MyAppDb Create()
{
return new MyAppDb();
}
public MyAppDb()
: base("MyAppDb")
{
}
}
public class ApplicationUserStore : UserStore<ApplicationUser, ApplicationRole, string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
public ApplicationUserStore(MyAppDb context)
: base(context)
{
}
}
public class ApplicationUserManager : UserManager<ApplicationUser, string>
{
public ApplicationUserManager(IUserStore<ApplicationUser, string> store)
: base(store)
{
}
}
Run Code Online (Sandbox Code Playgroud)
在这样的控制器中:
public class AccountController : Controller
{
public AccountController()
: this(new ApplicationUserManager(new ApplicationUserStore(new MyAppDb())))
{
}
public AccountController(ApplicationUserManager userManager)
{
UserManager = userManager;
UserManager.PasswordValidator = (IIdentityValidator<string>)new MinimumLengthValidator(8);
UserManager.UserValidator = new UserValidator<ApplicationUser>(UserManager) { AllowOnlyAlphanumericUserNames = false, RequireUniqueEmail = true };
}
public ApplicationUserManager UserManager { get; private set; }
...
}
Run Code Online (Sandbox Code Playgroud)
ApplicationUser
,ApplicationRole
,ApplicationUserLogin
,ApplicationUserRole
,并ApplicationUserClaim
从身份类别都分别继承.
有人看错了吗?我能够注册用户(UserManager.Create())
在我创建所有自定义Identity类之前没有Id
问题.
更新:似乎指定string
Key已破坏数据库上下文中自动生成的密钥.这是我最好的猜测.它现在正在寻找我设置Id
.我不想,我希望它在我创建自定义字段之前的工作方式User
.
似乎指定string
告诉UserStore
您将提供Id
. 当我解决以下问题后,这个问题就消失了有没有办法在不指定 IdenitityUser、IdentityRole 和 IdentityDbContext 上的 TKey 的情况下创建自定义用户和角色?
-或者-
只需给它一个id
这样的:Guid.NewGuid().ToString()
归档时间: |
|
查看次数: |
6056 次 |
最近记录: |