我在服务器 A 上的客户端调用 B 上的服务,B 上调用 C 上的服务。
为了让 B->C 的电话正常工作,我必须这样做:
channel.Credentials.Windows.ClientCredential =
new System.Net.NetworkCredential("WndowsUserName", "WindowsPassWord");
IService1 service = channel.CreateChannel();
等...
用户名和密码是从 A->B 使用的 Windows 凭据 当然,我不想对此进行硬编码,所以我如何在不进行硬编码的情况下做到这一点?
我试过了,没有运气:
WindowsIdentity callerWindowsIdentity =
ServiceSecurityContext.Current.WindowsIdentity;
using (callerWindowsIdentity.Impersonate())
最佳答案
使用
System.Net.CredentialCache.DefaultNetworkCredentials
属性(property)。它表示应用程序运行所在的当前安全上下文的身份验证凭据。详情可查here .
关于c# - WCF 窗口凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1253814/