我有一个使用表单身份验证的webforms应用程序(4.5)。在应用程序中,有一个使用基本身份验证的web api控制器。 (使用http://www.west-wind.com/weblog/posts/2013/Apr/18/A-WebAPI-Basic-Authentication-Authorization-Filter)。
web.config中的位置标记设置为允许Web Api Controller所在文件夹中的匿名用户。
现在,使用VS2k12的IIS Express,一切正常,我用httpclient调用api,如果我发送正确的证书,我会得到一些结果。
然而,当我将我的应用程序放在IIS7上(在我的Win7 pro dev机器上)时,会调用身份验证过滤器,但是Authorization标头是空的!!!!!
我在IIS7上安装并启用了基本身份验证,就像表单身份验证一样。和Anon Auth,Windows身份验证已禁用?
有人知道吗?
编辑:似乎我在过滤器提供401之后从Login.aspx页面获取html,因为没有授权标头。谢谢, 亨克
答案 0 :(得分:0)
确定您的授权过滤器被点击了吗?我的猜测是它没有。由于您在IIS中启用了基本身份验证,因此IIS将在Authorization标头中提取凭据并对Windows域进行验证。如果您在标头中发送的凭据不是Windows凭证,则此验证将失败并且将有401并且由于您启用了表单身份验证,因此您将被定向到loginn.aspx。如果要实现自己的基本身份验证,请在IIS中禁用基本身份验证。