我在我的WCF服务和代理中使用自定义绑定。我通过继承DuplexClientbase来创建代理。 WCF中有一个选项可以帮助我获取调用该方法的用户名吗?
这是我的约束力
<bindings>
<customBinding>
<binding name="CustomPipeBinding" maxConnections="10" openTimeout="01:20:00" receiveTimeout="20.00:00:00" sendTimeout="01:20:00" closeTimeout="01:20:00">
<windowsStreamSecurity protectionLevel="None" />
<namedPipeTransport maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
</binding>
<binding name="CustomTcpBinding" maxConnections="10" openTimeout="01:20:00" receiveTimeout="20.00:00:00" sendTimeout="00:05:00" closeTimeout="01:20:00">
<windowsStreamSecurity protectionLevel="None" />
<reliableSession />
<tcpTransport maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"/>
</binding>
</customBinding>
</bindings>
答案 0 :(得分:0)
您需要将服务配置为要求模拟为outlined in this MSDN article.由于您要定义自定义绑定,因此您需要添加所需的安全元素配置以允许WCF将Windows凭据从客户端传递到服务。
在您的服务代码中,您需要访问ServiceSecurityContext.Current.WindowsIdentity
静态属性才能获得所需内容。