我有一个WCF服务使用NetTcpBinding与某些Form应用程序交互以使用Callbacks。它运作得很好。
现在,我想在LocalService帐户下运行的WindowsService中使用相同的WCF服务。这样做的目的是输入一些将在表格中显示的数据。我只需要使用其中一个函数,我们称之为“PushInfo(data as MyData)
”
据我所知,我无法使用LocalService帐户执行此操作,因此我将其设置为使用某些AD凭据:
myclientWCF = New ServiceReference.GatewayClient(context)
myclientWCF.ClientCredentials.Windows.ClientCredential.UserName = "John"
myclientWCF.ClientCredentials.Windows.ClientCredential.Domain = "EvilCorpDomain"
myclientWCF.ClientCredentials.Windows.ClientCredential.Password = "spaceballs"
myclientWCF.PushInfo(myData)
如果我这样做,由于凭据无效,服务器会拒绝该呼叫。
我错过了什么?
我读过我应该使用:
myclientWCF.ClientCredentials.Windows.ClientCredential = New NetworkCredential("John", "spaceballs", "EvilCorpDomain")
但是我得到了相同的结果,实际上我看不出这与我的方法有什么不同。
答案 0 :(得分:0)
尝试添加myclientWCF.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonate;
答案 1 :(得分:0)
好吧,看起来我错过了这句话:
myclientWCF.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials
虽然我不确定它是如何工作的。我会调查一下。
我一整天都在努力工作,在发布问题10分钟后我就开始工作了。离开这里问题和答案是否是一个好习惯,还是应该删除帖子?