gpt4 book ai didi

authentication - 带有 Windows 身份验证的 Web API 返回 401 未经授权

转载 作者:行者123 更新时间:2023-12-03 17:48:23 25 4
gpt4 key购买 nike

我正在设计一个 WebAPI 服务,它必须对客户端的 AD 服务器使用 Windows 身份验证。我正在尝试在本地对此进行测试,并且不断收到 401 错误,然后由于凭据无效,服务器根本不允许该请求。我正在 IIS 8.5 本地(安装在 Windows 8.1 机器上)进行本地测试。在 IIS 中,我使用以下提供程序启用了 Windows 身份验证:

  • NTLM
  • 洽谈
  • 协商:Kerberos

  • 此外,我禁用了内核模式身份验证,因为当我同时启用内核模式和协商:kerberos 时,IIS 会对我大喊大叫。扩展保护也被禁用。

    在我的配置中,我将授权规则设置为允许所有用户,并且身份验证模式设置为“无”:
      <system.web>
    <authentication mode="None" />
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    </system.web>

    然后在 webapi 的 Controller 中,我把 [Authorize]所有 Controller 的属性:
    [Authorize]
    [RoutePrefix("api/Workorder")]
    public class WorkorderController : ApiController
    {
    ...
    }

    有人可以解释为什么我每次尝试访问 API 方法时都会收到 401 挑战吗?

    提前致谢!

    编辑 :
    我改了 <authentication mode="None" />到 Windows,这没有帮助。我也淘汰了 NTLM 来自我的 Windows 身份验证提供程序,因为我的机器不在域中,因此 NTLM 不起作用。

    我还通过 fiddler 观看了请求流,我能够看到一系列 4 个请求,每个请求都尝试使用 进行身份验证。洽谈 方法并且似乎有 kerberos 票来回传递。

    最佳答案

    我今天遇到了同样的问题。我更改了 Web API 项目属性,将匿名身份验证更改为已启用,将 Windows 身份验证更改为禁用。它的作用就像魅力一样!

    关于authentication - 带有 Windows 身份验证的 Web API 返回 401 未经授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28070428/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com