ASP.NET身份事务和错误

时间:2014-02-01 21:47:18

标签: asp.net-mvc-5 c#-5.0 asp.net-identity

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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