1

我对 WCF 很陌生,但是我已经非常彻底地搜索了这个主题,并没有得出一个令人满意的答案,所以我的问题是:

在我的 WCF 服务中,我需要访问用户的用户名。从我读过的所有内容中,我应该能够从 ServiceSecurityContext.Current.PrimaryIdentity.Name 中得到它。但是,它并没有像我希望的那样返回 Domain\Username ,而是总是返回 NT AUTHORITY\NETWORK SERVICE 。如何获取登录到访问我的服务的机器的个人的实际域和用户名?

谢谢。

4

2 回答 2

1

Have you looked at the ServiceSecurityContext Class?

Represents the security context of a remote party. On the client, represents the service identity and, on the service, represents the client identity.

e.g.

ServiceSecurityContext.Current.WindowsIdentity.Name

...ensuring that you have your service set up to authenticate via Windows security.

于 2013-06-25T14:06:43.807 回答
0

要使用 Windows 凭据,请将 clientCredentialType 设置为“Windows”。使用 wsHttpBinding 或 netTcpBinding(如果它在 LAN 内)

    <bindings>
  <netTcpBinding>
    <binding name="WindowsCredentials">
      <security mode="Transport">
        <transport clientCredentialType="Windows" />
      </security>
    </binding>
  </netTcpBinding>
</bindings>
于 2013-06-25T14:09:19.290 回答