gpt4 book ai didi

wcf - IIS 6.0 上 WCF 中的集成 Windows 身份验证

转载 作者:行者123 更新时间:2023-12-04 22:04:26 26 4
gpt4 key购买 nike

我需要为 IIS 6.0 (Windows Server 2003) 上托管的 WCF 服务实现集成 Windows 身份验证,没有证书。要求是在特定 Active Directory 组中的用户访问服务时简单地验证他们的 Windows 凭据。正在使用的框架版本是 3.0。

WCF 配置:

以下是服务的 web.config 文件的“绑定(bind)”部分:

<bindings>
<basicHttpBinding>
<binding name="Binding1">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>

</bindings>

没有“mex”端点。

即使虚拟目录和 .svc 文件的安全设置在 IIS 中选择了“集成 Windows 身份验证”,当 .svc 文件导航到时会出现以下错误:

Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service.

以下是服务托管的其他详细信息:

  • 该服务在单独的应用程序池下运行
  • 应用程序池在应用程序池的“身份”选项卡下配置的单独特权帐户下运行。

我已经看到许多与此相关的其他问题,但没有一个修复程序真正解决了这个问题。非常感谢您的意见。

最佳答案

经过一番挖掘,我终于发现,如果将“Windows”更改为“Ntlm”,这会起作用。我永远无法让它与 Kerberos 一起工作,但你提到无论如何都不想使用证书。

如果仍有问题,您可以查看 NTAuthenticationProviders 下相关站点的 IIS 元数据库中的内容。如果只想使用 Ntlm,则需要将该字符串设置为“NTLM”,并且需要确保它在传输 clientCredentialType 中显示的是“Ntlm”而不是“Windows”,否则会出现异常您在原始帖子中引用了。

相反,如果有人遇到此错误并且他们想使用 Kerberos 证书(如果可用),他们应该检查配置数据库 NTAuthenticationProviders 是否显示“Negotiate,NTLM”。这是默认设置,但在我今天尝试运行 WCF 服务的 VM 上对我来说却神秘地不同(最终将我带到了这个线程!)

关于wcf - IIS 6.0 上 WCF 中的集成 Windows 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/914302/

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