ASP.NET MVC4:如何在不重定向到登录页面的情况下从动作返回401? (表格认证)

时间:2018-02-09 16:51:20

标签: asp.net asp.net-mvc asp.net-mvc-4 web-config authorization

我目前正在开发一个旧的ASP.NET MVC4项目。它非常庞大,所以我无法在给定的时间内完全改变巨大的建筑细节。如何解决以下问题?

我想从单个控制器动作返回401。我尝试过这样做

return new HttpUnauthorizedResult() 

Response.StatusCode = 401; return null;

由于在web.config中启用了表单身份验证,因此我被重定向到指定的登录页面。我不想要这个。我只想将401返回浏览器而不采取任何其他操作。以下是来自web.config的段落:

<authentication mode="Forms">
  <forms defaultUrl="/Login" loginUrl="/Login" timeout="2880" />
</authentication>

这甚至可以实现我的目标吗?

请注意,我已将以下代码添加到web-config:

 <location path="PageThatShouldReturn401">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

1 个答案:

答案 0 :(得分:0)

快速观察 - 您拥有自己的状态&#39;错误:

  • 301 - 永久移动
  • 401 - 未经授权

这可能会影响您所看到的行为