返回ASP.NET MVC 5中302重定向的401状态代码

返回ASP.NET MVC 5中302重定向的401状态代码,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我试图从ASP.NET MVC控制器返回401,但它总是返回302 我尝试了各种论坛提供的解决方案,但似乎没有一个对我有效 AccountController.cs [RequiresAuthentication] public class AccountController : ControllerBase { [HttpPost] public async Task<ActionResult> Login(LoginViewModel model, string

我试图从ASP.NET MVC控制器返回401,但它总是返回302

我尝试了各种论坛提供的解决方案,但似乎没有一个对我有效

AccountController.cs

[RequiresAuthentication]
public class AccountController : ControllerBase
{
    [HttpPost]
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl = "")
    {
        ModelState.AddModelError<LoginViewModel, string>(m => m.UserName, Messages.Login_AuthenticationFailed);
        return new HttpStatusCodeResult(HttpStatusCode.Unauthorized);
    }
}

public class RequiresAuthenticationAttribute : AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        filterContext.HttpContext.Response.SuppressFormsAuthenticationRedirect = true;
        filterContext.RequestContext.HttpContext.Server.TransferRequest("/Account/Login/?NOT_AUTHORISED=TRUE", false);
    }
}
Login.chtml

    @Html.ResponsiveTextControlFor(m => m.UserName, inputLayout: Constants.UserInterface.LayoutOneColumnInput)
    
    @Html.ResponsiveTextControlFor(m => m.Password, inputLayout: Constants.UserInterface.LayoutOneColumnInput, isPasswordControl: true)
    
    using (Html.BeginSection(Constants.UserInterface.LayoutItem))
    {
        using (Html.BeginSection(Constants.UserInterface.LayoutButton))
        {
            @Html.SubmitButton("Log In")
        }
    }

非常感谢您提供的任何帮助。

专家需要您的帮助。您想重定向或返回401吗?选择一我想返回401,但如果401作为响应代码返回,则.net framework会重定向到登录
    @Html.ResponsiveTextControlFor(m => m.UserName, inputLayout: Constants.UserInterface.LayoutOneColumnInput)
    
    @Html.ResponsiveTextControlFor(m => m.Password, inputLayout: Constants.UserInterface.LayoutOneColumnInput, isPasswordControl: true)
    
    using (Html.BeginSection(Constants.UserInterface.LayoutItem))
    {
        using (Html.BeginSection(Constants.UserInterface.LayoutButton))
        {
            @Html.SubmitButton("Log In")
        }
    }