【问题标题】:Problems basic auth and authorisation headers问题基本身份验证和授权标头
【发布时间】:2013-08-06 12:21:41
【问题描述】:

我有一个使用表单身份验证的网络表单应用程序 (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,因为没有授权标头。

谢谢, 亨克

【问题讨论】:

    标签: asp.net iis asp.net-web-api


    【解决方案1】:

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

    【讨论】:

    • 它被击中,调试器停在那里,但 auth 标头为空,IIS,而不是 IIS express
    猜你喜欢
    • 2015-05-05
    • 2012-10-02
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 2019-12-18
    相关资源
    最近更新 更多