3

我有一个控制器操作,它从客户端上的 jquery 方法调用并返回 JSON。在某些情况下,我可能需要从此操作返回 401。只要在 web.config 中将 PreserveLoginUrl 设置为 true,如果我尝试发出 401,标准 MVC 将创建一个将用户重定向到登录页面的响应。我希望能够在某些操作上覆盖 PreserveLoginUrl,以便将真正的 401 发送到客户端。但是,对于大多数操作, PreserveLoginUrl=true 是正确的行为,所以我希望保持这种行为。

关于如何在保持 PreserveLoginUrl=true 功能的同时无需重定向少数操作的情况下完成真正的 401 的任何建议?现在,我返回 400 而不是 401 作为解决方法,但这并不是真正正确的行为,因为我确实想发出未授权。

4

1 回答 1

0

Use a 403 response instead and have your javascript/jquery method do what you want if the response is a 403. It is extremely difficult to override the built-in behavior of a 401 response in ASP.net.

于 2012-10-30T18:32:53.337 回答