从表单认证应用的web api返回401消息
本文关键字:api 返回 消息 web 表单 认证 应用 | 更新日期: 2023-09-27 18:08:08
我试图从我的Web Api返回401,如果用户没有登录,而不是在使用Api方法上的Authorize属性时将它们发送到登录页面。我已经看到了一些关于如何解决这个问题的想法,但没有一个对我有效。
我正在使用web api 5.2.3,它看起来不像响应。SuppressFormsAuthenticationRedirect = true;工作了。
我也试图覆盖HandleUnauthorizedRequest没有运气,它仍然将我重定向到登录页面。谢谢你的帮助
通常情况下,我使用ASP。该框架对Web APi和MVC使用相同的控制器类型。然而,这是我如何处理这个问题,在服务。我的启动类的AddIdentity方法
config.Cookies.ApplicationCookie.Events = new CookieAuthenticationEvents()
{
OnRedirectToLogin = ctx =>
{
if (ctx.Request.Path.StartsWithSegments("/api") && ctx.Response.StatusCode == 200)
{
ctx.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
}
else
{
ctx.Response.Redirect(ctx.RedirectUri);
}
return Task.FromResult(0);
}
};
让我知道这是否适合你