如何解决在未经身份验证的API请求的情况下,如何防止重定向到登录网址?
我有一个ASP.NET Core 3.1.8 Web应用程序使用ASP身份。 一切正常,当用户尝试导航到需要身份验证的页面时,响应会将用户重定向到登录页面。
最近我创建了一些API控制器:
[Route("api/[controller]/[action]")]
[ApiController]
[Produces("application/json")]
public class MyController : ControllerBase
{
[HttpGet]
[Authorize]
public ActionResult<string> PingAuth(string message)
{
return Ok($"Pong: {message}");
}
在测试过程中,我注意到,如果我不进行身份验证就调用它,则响应将是重定向,而不是“ 401未经授权”。
问题
有什么方法可以解释api控制器发送[401:未授权]而不是[302:找到]?
解决方法
尝试使用Authorize属性的属性Policy并要求经过身份验证的用户:
在启动中,ConfigureServices:
foreach($request->input('attributes') as $id => $value) {
$products->whereHas('attributes',function ($q) use ($id,$value) {
q->where('attributes.id',$id)
->whereRaw('CAST(value AS DECIMAL(10,2)) between ? and ?',$value);
);
}
然后您可以使用[Authorize(Policy =“ AuthUsers”)]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。