通过WCF服务访问NAS时“未知用户名或密码错误”

时间:2011-10-13 16:48:41

标签: wcf authentication wcf-security impersonation delegation

我有一个与WCF服务通信的Web应用程序客户端。客户端和服务都在运行模拟,因为他们需要写入NAS上的类似位置以便编写日志和工作文件。问题是,虽然客户端可以写得很好,但服务却不能。两者都使用System.IO.FileStream写入NAS。我们最初认为这可能是由于未正确传递的凭据,因此为域用户启用了委派。我们仍然收到同样的错误。如果我检查ServiceSecurityContext.Current.WindowsIdentity我可以看到它是我期望的域用户,但奇怪的是IIdentity.AuthenticationType值是“Kerberos”。使用this文章,我们检查了我们的IIS NTAuthenticationProviders并验证它已设置为“Negotiate,NTLM”。我意识到这个IIS设置是用于IIS之间的通信,而不是NAS,但我们想确定 我们还执行了跟踪,可以看到有问题的服务器和NAS位置之间的协商。发送请求后,我们确实看到它尝试联系域控制器,但由于未配置,因此验证失败 最后,我只是想知道是否有一个配置指令可以设置为阻止它在写入NAS时尝试使用Kerberos身份验证,其次,为什么服务在客户端使用时使用Kerberos不。 我很乐意编辑它并添加所需的任何其他配置项,所以请告诉我。

WCF服务web.config绑定部分

    <bindings>
        <wsHttpBinding>
            <binding name="default" maxReceivedMessageSize="200000">
                <security mode="Message">
                    <message clientCredentialType="Windows" negotiateServiceCredential="true" />
                </security>
            </binding>
        </wsHttpBinding>
    </bindings>

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你看过这个中的项目吗?

http://msdn.microsoft.com/en-us/library/ff650591.aspx

步骤8中的项目可能会帮助您或指向正确的方向。