IdentityResult只是一个类,它告诉您 ASP.NET(Core)Identity 操作是否成功,并且在出现错误时向您提供错误消息,并且与实现IActionResult接口的 MVC Action 结果无关。
如果您使用 WebApi/RestApi 控制器,您可以将其翻译为类似的内容
public IActionResult SomeActionName()
{
IdentityResult result = ...; // some identity operation
// all is okay, return http code 200
if(result.Success)
return Ok();
// error happened, return http code 400 + errors as json
return BadRequest(result.Errors);
}
Run Code Online (Sandbox Code Playgroud)
或者如果你真的很懒,可以自己写IActionResult:
public class IdentityActionResult : IActionResult
{
private readonly IdentityResult identityResult;
public IdentityActionResult(IdentityResult identityResult)
{
this.identityResult = identityResult;
}
public Task ExecuteResultAsync(ActionContext context)
{
IActionResult actionResult = null;
if(identityResult.Success)
{
actionResult = new OkResult();
}
else
{
actionResult = new BadRequestObjectResult(identityResult.Errors);
}
return actionResult.Execute(context);
}
}
Run Code Online (Sandbox Code Playgroud)
当然,这可以进一步优化,这样您就不必为IActionResult每个请求创建两个对象,但这是一个留给您的练习;)
| 归档时间: |
|
| 查看次数: |
1711 次 |
| 最近记录: |