代码之家  ›  专栏  ›  技术社区  ›  Ta01

在WCF中模拟客户端身份,使用/netTcpBinding

  •  1
  • Ta01  · 技术社区  · 16 年前

    在通过调用netTcp端点操作时,是否可以模拟客户端的身份 配置

    <client>
        <endpoint 
            address="net.tcp://localhost:8081/tcpExample" 
            binding="netTcpBinding"
            bindingConfiguration="myTcpBinding" 
            contract="TestTcp.IHelloTcp"
            name="NetTcpBinding_IHelloTcp">
            <identity>
                <userPrincipalName value="leethax@mydomain.inc" />
            </identity>
        </endpoint>
    </client>
    

    我的客户端没有失败,似乎连接到客户端的身份是当前登录的用户,即我。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Kwal    16 年前

    您确实有三种选择:

    1. 人工模拟 (WindowsIdentity.Impersonate)
    2. (OperationBehavior(模拟=模拟。必需))
    3. 完全模仿 (ServiceAuthorizationBehavior.ImpersonateCallerForAllOperations)

    此外,请确保运行服务的帐户(即。leethax@mydomain.inc)被授予计算机和域级别的适当权限。

        2
  •  1
  •   casperOne    14 年前

    隐马尔可夫模型。。。我不太明白。netTcpBinding的默认行为是使用Windows凭据-例如,您当前的Windows帐户用于服务凭据。

    这是开箱即用的默认设置。

    另外 用户,不,您不能在配置中执行此操作-您必须在代码中执行此操作。那是唯一的办法,对不起。

    MyServiceClient client = new MyServiceClient();
    client.ClientCredentials.Windows.ClientCredential.Domain = domain;
    client.ClientCredentials.Windows.ClientCredential.UserName = username;
    client.ClientCredentials.Windows.ClientCredential.Password = password;
    

    推荐文章