c# - 如何在 ASP.NET Core v3 中使用 Identity 返回所有错误描述
问题描述
我正在学习在 asp.net 核心中使用身份登录/注册,我正在尝试在注册时添加错误,这是我的代码
if (ModelState.IsValid)
{
var user = new IdentityUser
{
UserName = model.Username,
Email = model.Email,
};
var result = await _userManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
var signInresult = await _signInManager.PasswordSignInAsync(model.Username, model.Password, false, false);
if (signInresult.Succeeded)
{
return RedirectToAction("Index");
}
}
else
{
List<IdentityError> errorList = result.Errors.ToList();
string errors = "";
foreach (var error in errorList)
{
errors = errors + error.Description.ToString();
}
return Content(errors);
}
return Redirect("Index");
}
这里的问题是errorList中的错误是一个一个返回,而不是像所有的一样,我得到“用户名被占用”或“密码必须包含一个字母”。但不是一次全部。我该如何解决?
解决方案
这里的问题是errorList中的错误是一一返回的,而不是全部返回,
如果我理解正确,您不想使用 foreach 来一一获取错误,您可能会得到所有错误,如下所示
else
{
List<IdentityError> errorList = result.Errors.ToList();
var errors = string.Join(", ", errorList.Select(e=>e.Description));
return Content(errors);
}
推荐阅读
- python - Windows 上的 Python mecab 包导入错误“未定义”
- html - spring boot 从文件目录提供静态图片
- java - 在 Android 项目中使用 java.lang.ref.Cleaner
- typescript - TypeScript 类型错误和枚举对象道具的方法
- tableau-api - 在 Tableau 中从州到县地图的交互式钻取
- .net - .Net Api 角度认证
- javascript - CS50 未捕获类型错误:无法将属性“禁用”设置为 null
- python - tkinter 的 PhotoImages 真的需要根窗口吗?为什么?
- android - 如何将 dp 值转换为角半径的 x 和 y 浮点值?
- ubuntu - 在 Electron Kiosk 模式下显示屏幕键盘