[英]Retrieving client user name and computer name from within webservice
我在服务器上有Web服务! 此服务正在从客户端应用程序调用!
现在如何获取使用该服务的客户端的用户名和计算机名,例如,如果来自Clint1的应用程序调用了该服务,我想获取Clint1的计算机名和用户名?
非常感谢!
您确实不能可靠。
服务器变量REMOTE_HOST
可以为您提供它,但是在大多数情况下,它将是一个IP地址,并且很可能是代理的IP地址。 另外-这很容易被欺骗。
用户名( REMOTE_USER
)也是一样,除非您使用某种WS-Security
机制来验证调用您的Web服务的用户。
客户端将必须将此信息传递给服务。
正如Wim所说,您无法可靠地获得此信息。 对于有保证的Windows网络,您可以使用server变量检索(通过计算机的)当前经过身份验证的用户:
System.Web.HttpContext.Current.Request.ServerVariables("LOGON_USER")
REMOTE_HOST变量应该返回计算机名称,但是在大多数情况下(如他所说),它将只是一个IP地址。
即使在局域网上,也不建议这样做。 该信息仍然可以在本地被欺骗,从而为内部用户提供了像其他用户一样伪装的能力。 如果仅将其用于标识(而不是认证或授权),则可能“足够好”。 如果您维护一个小的数据表(或网络团队),将每个PC标识为其预期的IP地址,则此信息将实现您想要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.