【问题标题】:WCF security negotiation exceptionWCF 安全协商异常
【发布时间】:2012-02-07 07:55:31
【问题描述】:

我们正在为我们的服务使用下面提到的安全配置

配置:

<security mode="Message">
    <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
    <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" establishSecurityContext="true" />
</security>

在我们的本地网络中访问服务时,我们从一些客户端获得以下异常:

System.ServiceModel.Security.SecurityNegotiationException: The caller was not authenticated by the service. ---> System.
ServiceModel.FaultException: The request for security token could not be satisfied because authentication failed.
   at System.ServiceModel.Security.SecurityUtils.ThrowIfNegotiationFault(Message message, EndpointAddress target)
   at System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(Message incomingMessage, Sspi
NegotiationTokenProviderState sspiState)

我已经收集了 WCF 跟踪,但它没有帮助。我猜 Windows kerberos 无法验证 Windows 身份。我已经验证客户端机器/登录的用户详细信息在 ADS 中可用,并且服务器和客户端都在同一个域中。

如果您对此问题有任何解决方案,请告诉我。

非常感谢您的帮助。

【问题讨论】:

    标签: .net wcf wcf-security


    【解决方案1】:

    可能是时间偏差。尝试查看受影响的客户端时钟是否不同。

    否则。如果您可以将 Visual Studio 调试器附加到客户端代码,并禁用“仅我的代码”,则可以中断 WCF 中的内部异常。默认情况下,WCF 隐藏所有内部异常。

    【讨论】:

    猜你喜欢
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 2011-05-15
    • 1970-01-01
    相关资源
    最近更新 更多