【问题标题】:Silverlight client computer name, user name or a unique key from clientSilverlight 客户端计算机名称、用户名或来自客户端的唯一密钥
【发布时间】:2012-06-05 14:21:35
【问题描述】:

我正在尝试从客户端获取唯一的密钥,例如用户名或计算机名称,但在 wcf 方面,以下任何一项都不适合我:

HttpContext.Current.Request.LogonUserIdentity.Name // blank
Security.Principal.WindowsIdentity.GetCurrent().Name

为了安全起见,我使用匿名模式,无论如何用户都不应该登录。我该怎么做?

谢谢。

【问题讨论】:

    标签: wcf silverlight client computer-name


    【解决方案1】:

    如果您使用匿名身份验证模式,那么您会得到一个空白名称。 正如模式所暗示的那样,请求是一种....匿名的。

    如果您需要一个唯一标识符,我认为在这种情况下您最好的选择是向您的请求添加一个自定义标头,其中包含一个在首次运行时创建并保存在隔离存储中的 Guid。

    【讨论】:

    • 能否给我一个示例代码,以便从 silverlight 获取 mac 地址。
    • 触摸。如果不在受信任模式下使用 pinvoke,在沙盒模式下就不容易完成。我已经更新了一个替代方案。
    【解决方案2】:

    如果您可以保证唯一的 IP 地址(不太可能,但可能):

    您可以尝试访问Request.ServerVariables to retrieve the consumers IP Address

    这是list of common Server Variable Keys

    如果您不能保证唯一的 IP 地址:

    This SL forum post suggests using a GUID kept in isolated storage 来回发送上下文。

    【讨论】:

    • 感谢 SilverNinja,但本地或远程 ip 可以轻松更改。
    • 正确 - 这取决于 Silverlight 客户端的使用方式。
    猜你喜欢
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多