Asp.net mvc 5 ASP.NET身份事务和错误

Asp.net mvc 5 ASP.NET身份事务和错误,asp.net-mvc-5,c#-5.0,asp.net-identity,Asp.net Mvc 5,C# 5.0,Asp.net Identity,我在ASP.NETMVC5网站中创建了一个自定义UserStore类,以允许对SQL Server进行自定义读/写,我有几个问题 当'var result=wait UserManager.CreateAsync(user,model.Password);'首先调用UserStore中的控制器“public Task FindByNameAsync(string userName)”,然后调用“public Task CreateAsync(TUser user)”。什么会阻止同时创建具有相同用

我在ASP.NETMVC5网站中创建了一个自定义UserStore类,以允许对SQL Server进行自定义读/写,我有几个问题

  • 当'var result=wait UserManager.CreateAsync(user,model.Password);'首先调用UserStore中的控制器“public Task FindByNameAsync(string userName)”,然后调用“public Task CreateAsync(TUser user)”。什么会阻止同时创建具有相同用户名的第二个帐户

  • 如何在“public Task CreateAsync(TUser user)”中引发错误,导致控制器中出现“result.succeed==false”和“result errors”

  • 对于#1,我们在IdentityDbContext上使用ValidateEntity来确保用户名是唯一的。在2.0版本中,我们还在用户名上添加了一个唯一的索引,这应该保证用户名是唯一的

    对于#2,当操作失败时,存储预计会抛出异常,基本CRUD操作预计不会真正正常失败。如果您的商店想要公开特殊的行为,您可以重写或实现自己的CreateAsync变体,该变体使用所需的错误字符串返回相应的IdentityResult