gpt4 book ai didi

asp.net-mvc-5.1 - 为什么 SuppressFormsAuthenticationRedirect 在 AuthorizeAttribute.HandleUnauthorizedRequest 覆盖中不起作用?

转载 作者:行者123 更新时间:2023-12-04 12:08:23 26 4
gpt4 key购买 nike

我有一个带有单个 POST 操作的 Controller 的 MVC 5.1 站点。我有一个 Android 应用程序,我想使用基本身份验证向它发布。我创建了一个 BasicAuthorizeAttribute类并将其应用于我的 Controller ,并出于测试目的使其拒绝所有内容:

public class BasicAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
return false;
}

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.HttpContext.Response.SuppressFormsAuthenticationRedirect = true;
base.HandleUnauthorizedRequest(filterContext);
}
}

我可以在调试器中单步执行我的 HandleUnauthorizedRequest,但 Fiddler 显示 POST 响应是 302 重定向到登录页面。我以为 SuppressFormsAuthenticationRedirect应该防止这种情况发生。这是一个问题,因为 Android 应用程序遵循重定向并从登录请求中获得 200 OK,所以看起来 POST 成功了。我究竟做错了什么?

最佳答案

200 OK 状态代码设置在调用的上游 HandleUnauthorizedRequest .显式清除、设置和结束响应工作。 SuppressFormsAuthenticationRedirect在这种情况下似乎没有必要。

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.HttpContext.Response.Clear();
filterContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
filterContext.HttpContext.Response.End();
base.HandleUnauthorizedRequest(filterContext);
}

关于asp.net-mvc-5.1 - 为什么 SuppressFormsAuthenticationRedirect 在 AuthorizeAttribute.HandleUnauthorizedRequest 覆盖中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22335849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com