从MVC3升级到5,现在Application_AuthenticateRequest不再接收auth'd请求

时间:2015-02-26 21:04:02

标签: c# asp.net-mvc

我已经将包含.asmx文件的旧项目从MVC 3升级到MVC 5,现在Global.asax中的Application_AuthenticateRequest处理程序不再能够看到所有请求。它看到了客户端的初始请求,我的代码返回401所需的BASIC auth,但是当客户端使用Auth标头集响应时,Application_AuthenticateRequest永远不会获得第二个请求。我用Fiddler验证了这一点。

此外,某些东西 - 可能是MVC框架 - 正在初始响应中添加一个自己的BASIC auth和realm ='localhost',所以我的应用程序的初始响应有两次BASIC auth头。

如何让Application_AuthenticateRequest处理程序再次看到它以前的所有请求?

编辑添加:我在一个全新的MVC5项目中得到了同样的行为。但问题只发生在本地IIS上;代码在IIS EXPRESS上运行正常。

我还在新安装的服务器上尝试了我的代码,其IIS设置正常。同样的问题。

... Application_BeginRequest 两次都被调用,所以第二个请求会进入应用程序。所以我假设MVC5添加了一个“帮助”的新功能?

2 个答案:

答案 0 :(得分:1)

您是否已禁用基本身份验证并在IIS中启用匿名身份验证? IIS可能会阻止您的请求。如果要进行自定义基本身份验证,则需要为IIS禁用基本身份验证。我会猜到它为什么在IIS中工作表示这两个isapi模块的配置在IIS-express中是不同的/不存在的 - Chris Marisic

答案 1 :(得分:0)

对于所有请求,我认为您要使用Application_PostAuthenticateRequest代替Application_AuthenticateRequest