返回ASP.NET MVC 5中302重定向的401状态代码
我试图从ASP.NET MVC控制器返回401,但它总是返回302 我尝试了各种论坛提供的解决方案,但似乎没有一个对我有效 AccountController.cs返回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
[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")
}
}