【问题标题】:Get Client's Mac address at server side in WCF service C#\ [duplicate]在 WCF 服务 C#\ [重复] 中获取服务器端客户端的 Mac 地址
【发布时间】:2021-02-10 19:42:10
【问题描述】:

我将 WCF 服务托管为 Windows 服务,我试图在服务器端(WCF 端)获取客户端(WPF 客户端)Mac 地址。我尝试使用以下代码行,但它也以 ::1 格式为我提供了客户端的 IP 地址。 RemoteEndpointMessageProperty prop = OperationContext.Current.IncomingMessageProperties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;

prop.Address 是 ::1

我如何获取客户端Mac 地址,以便区分访问我的服务的客户端。 在某些情况下,同一网络下的客户端可能会给我相同的 IP 地址,这就是我正在寻找 Mac 地址 来识别客户端呼叫的原因。

【问题讨论】:

    标签: c# wpf wcf client-server mac-address


    【解决方案1】:

    快速提问:您是否能够使用/修改 WPF 代码?

    我的想法是,您可以让 WPF 客户端在初始化时生成一个唯一代码,并将其与对服务器的每个请求一起包含在内。

    【讨论】:

    • 我可以,但这不符合我目前工作的应用程序架构,可能需要更多更改。但是,如果需要在 WPF 端进行所有更改,这意味着在我与服务器建立连接时添加标头?虽然,这不是我真正想要的,但为了把它作为最后的手段,请你帮忙提供一些示例代码。感谢您的及时检查!
    • 嗯。 MAC 地址不是 IPv4/IPv6 数据包的一部分,所以我认为您不能仅从请求中得到它。
    • 好的,如果我不能通过这个,有什么建议可以在客户提出请求时提供附加客户的身份吗?
    • 这是一篇旧帖子,提出了类似的问题;您也许可以使用请求者的 ServiceSecurityContext.Current.PrimaryIdentity 属性作为他们的身份,但我没有对此进行测试。链接:link
    • 不走运。刚刚尝试过,如帖子评论中所写,对我来说也是无效的。感谢您检查这一点。我也在寻找旧帖子,但我无法找到满足我要求的解决方案!!!
    猜你喜欢
    • 2021-05-14
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    相关资源
    最近更新 更多