如何设置IdentityResult?

时间:2015-02-17 10:06:11

标签: asp.net-identity usermanager

我需要使用一些更复杂的规则来验证新的(或更新的)用户的电子邮件地址。

我想过使用进入用户管理器的用户存储但是IdentityResult在何处以及如何构建?

我只是抛出一个异常就是这样吗?或者是否有一些额外的验证机制?

3 个答案:

答案 0 :(得分:6)

IdentityResult在构造函数中使用IEnumerable<String>

public IdentityResult(IEnumerable<string> errors)

这些是将传递回调用代码的错误。

或者您可以调用此方法:

var identityResult = IdentityResult.Failed("First error", "Second validation error");

这与使用字符串列表调用构造函数相同。

答案 1 :(得分:0)

.NETCore已更改。因此,要返回失败结果并在其中分配您自己的错误,则必须为要传递的每个错误创建一个完全合格的IdentityError实例。

例如,假设您遇到以下错误,并且希望使用这些错误重新发送失败的结果:

var errors1 = "Your password is incorrect";
var errors2 = "Your email is not recognized";

要继续并为这些错误返回失败的地址,请执行以下操作:

var result = IdentityResult.Failed(
   new IdentityError[] {
      new IdentityError{
         Code = "0001",
         Description = error1
      },
      new IdentityError{
         Code = "0002",
         Description = error2
      }
   }
);

基本上,这里发生的是Failed的新IdentityResult方法期望paramsIdentityError[]。显然,如果您有很多错误,则可以创建一个IdentityError[]变量,然后将所有错误放入其中,然后将其传递给Failed方法。

答案 2 :(得分:0)

这样做:

var errorMessage = new IdentityError
                {
                    Description = "error message"
                };

                result = 
                    IdentityResult.Failed(errorMessage);