1

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

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

为了安全起见,我使用匿名模式,无论如何用户都不应该登录。我怎样才能做到这一点 ?

谢谢。

4

2 回答 2

1

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

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

于 2012-06-05T14:30:26.087 回答
0

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

您可以尝试访问Request.ServerVariables以检索消费者 IP 地址吗?

这是一个常见的服务器变量键列表。

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

此 SL 论坛帖子建议使用保存在隔离存储中的 GUID,该 GUID 来回发送以获取上下文。

于 2012-06-05T14:32:27.520 回答