在我们的 ASP.NET MVC 应用程序中,我们通过以下方式自动将用户重定向到登录页面:<authentication>
的部分<system.web>
当他们尝试访问仅限授权的页面时。问题在于,应用程序中间的一个操作(设计为由工具使用)需要在错误访问时返回直接的 HTTP 401 响应。如何返回真实的 HTTP 401 代码without此特定操作的重定向?
以下解决方案有效,尽管我完全不确定它是最佳的:
public class HttpAuthenticationRequiredResult : ActionResult
{
public override void ExecuteResult(ControllerContext context)
{
var response = context.HttpContext.Response;
response.StatusCode = 401;
response.AddHeader("WWW-Authenticate", "Basic realm=\"whatever\"");
response.Flush();
response.Close();
}
}
然后,您可以返回上述结果而不是 HttpUnauthorizedResult 来生成所需的 401 代码。然而,这对我来说感觉相当笨拙。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)