【问题标题】:ASP.NET Identity transactions and errorsASP.NET 身份事务和错误
【发布时间】:2014-02-25 13:32:45
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    对于#1,我们在 IdentityDbContext 上使用 ValidateEntity 来确保用户名是唯一的。在 2.0 版本中,我们还为用户名添加了唯一索引,以确保它们是唯一的。

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

    【讨论】:

      猜你喜欢
      • 2020-11-17
      • 2017-07-26
      • 2019-03-24
      • 2013-11-28
      • 1970-01-01
      • 2016-06-10
      • 2017-12-22
      • 2015-01-31
      • 1970-01-01
      相关资源
      最近更新 更多