1

我在我的 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>
4

1 回答 1

0

您需要将您的服务配置为需要模拟,如此 MSDN 文章中所述。由于您正在定义自定义绑定,因此您需要添加所需的安全元素配置以允许 WCF 将 Windows 凭据从客户端传递到服务。

在您的服务代码中,您需要访问ServiceSecurityContext.Current.WindowsIdentity静态属性来获得所需的内容。

于 2012-09-04T18:54:39.993 回答