gpt4 book ai didi

c# - 如何从 WCF asmx C# 获取客户端的计算机名称?

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:52 25 4
gpt4 key购买 nike

如何从 WCF asmx C# 获取客户端的计算机名称?

我试过这种方法,但根本行不通。

  1. 这是我想到的最佳解决方案,但它不起作用...好吧,结果是返回客户端的计算机名称,但有时返回计算机名称 A,有时返回计算机名称 B。

    string[] computer_name = System.Net.Dns.GetHostEntry(
    HttpContext.Current.Request.ServerVariables["remote_addr"])
    .HostName.Split(new Char[] { '.' });
    logData.ComputerName = computer_name[0].ToString();
  2. 结果是来自 WCF 而不是客户端的计算机名称。

    System.Environment.MachineName
  3. 与 1 相同的结果,但有时会返回 Empty

    System.Net.Dns.GetHostByName("LocalHost").HostName.
  4. 返回 Null

    OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.Name
  5. 返回IP、IP和Client的用户

     loginRequest.ServerVariables["remote_addr"],
    Request.ServerVariables["remote_host"],
    Request.ServerVariables["remote_user"]

最佳答案

您可以启用 WCF 服务来访问 ASP.Net http 上下文并从上下文中获取地址:

<system.serviceModel>            
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
...
</system.serviceModel>

在此之后,您将能够访问 HttpContext.Current.Request.UserHostAddress 属性以获取发件人详细信息

关于c# - 如何从 WCF asmx C# 获取客户端的计算机名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38710816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com