Oma*_*uma 2 c# model-view-controller asp.net-mvc asp.net-core
我实现了一个IUserRepository,在其中实现登录和注册UserRepository;这是我的代码
public async Task<IActionResult> LoginAsync([FromBody] UserCred user)
{
var result = await _signInManager.PasswordSignInAsync(user.username, user.password, user.rememberMe, false);
if (result.Succeeded)
{
var token = _jwtAuthenticationManager.Authenticate(user.username, user.password);
if (token == null)
return Unauthorized();
return Ok(token);
}
return BadRequest();
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
当前上下文中不存在名称“BadRequest”
Ok和 也一样Unauthorized。
但是,当我直接在我的userController. 我想我只能BadRequest在控制器中返回?有什么办法可以克服这个问题,因为如果不是IActionResult,我将如何检查是否results.Succeeded?
此外,这是我的UserController:
[HttpPost]
[AllowAnonymous]
[Route("login")]
public async Task<IActionResult> Login([FromBody] UserCred user)
{
return await _userRepository.LoginAsync(user);
}
Run Code Online (Sandbox Code Playgroud)
小智 7
BadRequest()是控制器本身的一个方法。
最好从 中返回一个值IUserRepository,例如 null 或 token,然后在控制器中将该值映射到Ok或BadRequest响应。
决定响应类型是控制器本身的责任。
放置在控制器中的这样的代码应该可以完成这项工作:
token = await _userRepository.LoginAsync(user);
return token == null ? BadRequest() : Ok(token);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |