我正在尝试从客户端获取一个唯一的密钥,例如用户名或计算机名,但在wcf方面,以下任何一项都不适用于我:
HttpContext.Current.Request.LogonUserIdentity.Name // blank
Security.Principal.WindowsIdentity.GetCurrent().Name
我使用匿名模式进行安全保护,用户不应该登录。我怎么能这样做?
感谢。
答案 0 :(得分:1)
如果您使用的是匿名身份验证模式,则会获得空白名称。 正如模式所暗示的那样,请求有点......匿名。
如果你需要一个唯一标识符,我认为在这种情况下你最好的选择是在你的请求中添加一个自定义标题,其中包含在首次运行时创建并保存在独立存储中的Guid。
答案 1 :(得分:0)
您可以尝试访问Request.ServerVariables
to retrieve the consumers IP Address?
这是list of common Server Variable Keys。
This SL forum post suggests using a GUID kept in isolated storage是为了上下文而来回发送的。