[英]WCF: Client Impersonation
我有一个控制台应用程序客户端,它与另一台服务器上的控制台应用程序托管的WCF服务进行通信。 它使用Windows身份验证和安全模式= message
在我更改服务以模拟客户端凭据之前,它工作正常。 我要做的更改是:
1.将<serviceAuthorization impersonateCallerForAllOperations="true" />
到服务行为
2.将[OperationBehavior(Impersonation = ImpersonationOption.Required)]
到我的方法签名中
然后,我托管我的服务,它正常运行,一切正常。
在我的客户中,我唯一要做的就是添加:
ChannelFactory<IService1> channel = new ChannelFactory<IService1>(binding, endPoint);
channel.Credentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;
然后,我运行我的客户端并得到错误:
服务器未提供有意义的回复; 这可能是由于合同不匹配,会话过早关闭或内部服务器错误引起的。
我还需要对客户端配置做些其他的事情吗?
您的服务器设置可能与合同不符。
在服务器端:
我的猜测是您错过了最后一个。
我怀疑wcf方法调用会在服务器端触发异常。 您是否具有捕获服务器端异常或有效负载的基础架构? 如果不是,则使用类似wcf跟踪日志记录的方式来记录流量。
这应该给您一个更有意义的错误。
如果您希望将其添加到您的问题中,希望我们可以找出导致问题的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.