提出的要求,我有一個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