首页 文章

ASP.NET标识事务和错误

提问于
浏览
1

我在ASP.NET MVC 5网站上创建了一个自定义UserStore类,允许自定义读/写SQL Server,我有几个问题......

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

  • 如何在“公共任务CreateAsync(TUser用户)”中引发错误,导致控制器中出现“result.Succeeded == false”和“结果错误” .

1 回答

  • 0

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

    对于#2,当操作失败时,Stores应该抛出异常,基本的CRUD操作预计不会正常失败 . 如果您的商店想要公开特殊行为,您可以覆盖或实现您自己的CreateAsync变体,该变体返回具有您想要的错误字符串的相应IdentityResult .

相关问题