提出的要求,我有一个Web服务在我的IIS托管客户端IP地址...我需要找出clientIP地址时,客户端使用我的服务直接如何从Web服务到
像http://MyIpAddress/MyApplication/MyWebServiceClass.asmx
和是否有可能从客户机读取文件?如果是这样,我该怎么做?
提出的要求,我有一个Web服务在我的IIS托管客户端IP地址...我需要找出clientIP地址时,客户端使用我的服务直接如何从Web服务到
像http://MyIpAddress/MyApplication/MyWebServiceClass.asmx
和是否有可能从客户机读取文件?如果是这样,我该怎么做?
尝试调用
Request.UserHostAddress
HttpRequest.UserHostAddress Property
至于从客户端访问文件,这将需要被首先将文件上传到服务器来实现的。
结帐上的文件上传到Web服务执行以下操作:
你应该在ASMX在您的处置有一个普通的旧式HTTP上下文:
HttpContext.Current.Request.UserHostAddress
还有:“是否可以从客户机读取文件” - 这一切都取决于您的实现。如果你正在为企业内部网做一个网络服务,并且你在一个小的(ish)商业环境中工作,那么你可能会给予你的网络人员适当的计划(不是主张这是一个好主意,而只是一种可能性)。
要进一步说明,如果您在小型办公室环境中并且从192.168.1.55获得请求,并且您知道网络中的每台客户端计算机都有C驱动器中的lastLoginData.txt文件,并且您拥有通过托管该服务的计算机的UNC访问客户端的适当配置,获得“\\”+ ip +“\ c $ \ lastLoginData.txt”是可能的。你会为自己创造一个潜在的可怕的安全问题,但它是可能的。
尽管在最正常的情况下,不会,您将无法从Web服务访问客户端磁盘 - 某种上传可能必须首先发生。
的可能的复制有没有什么办法让读取文件知道地址? – user824910
备注:使用IPAddress.Parse将字符串解析为IPAddress对象。然后你可以做类似的东西。 Equals(IPAddress.Loopback)来测试请求是否来自本地机器等。 – user169771
String ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(ip))
{
ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
else
{
ip=ip.Split(',')[0];
}
return ip;
http://stackoverflow.com/questions/492952/how-to-retrieve-pc-name-of-client-from-c-webservice – Quasdunk