0

我有一个使用表单身份验证的网络表单应用程序(4.5)。在应用程序中有一个使用基本身份验证的 Web api 控制器。(使用http://www.west-wind.com/weblog/posts/2013/Apr/18/A-WebAPI-Basic-Authentication-Authorization-Filter)。

web.config 中的位置标记设置为允许 Web Api 控制器所在文件夹中的匿名用户。

现在,使用 VS2k12 中的 IIS Express,一切正常,如果我发送正确的凭据,我会使用 httpclient 调用 api,并返回一些结果。

但是,当我将应用程序放在 IIS7 上(在我的 Win7 pro 开发机器上)时,会调用身份验证过滤器,但授权标头是空的!!!!!!

我在 IIS7 上安装并启用了基本身份验证,就像表单身份验证一样。和匿名身份验证,禁用 Windows 身份验证?

有人有线索吗?

编辑:在过滤器给出 401 后,我似乎从 Login.aspx 页面获取了 html,因为没有授权标头。

谢谢, 亨克

4

1 回答 1

0

确定您的授权过滤器会被击中吗?我的猜测是它没有。由于您在 IIS 中启用了基本身份验证,因此 IIS 在 Authorization 标头中提取凭据并针对 Windows 域对其进行验证。如果您在标头中发送的凭据不是 Windows 凭据,则此验证将失败并出现 401,并且由于您启用了表单身份验证,您将被定向到 loginn.aspx。如果要实现自己的基本身份验证,请在 IIS 中禁用基本身份验证。

于 2013-08-06T13:34:26.400 回答