申請免費試用、咨詢電話:400-8352-114
AMTeam.org
從Web
Services中訪問服務器變量
在新聞組中最經常被問到的問題就是“如何從一個web Services(Web服務)內部獲取客戶瀏覽器的IP地址?”
這個問題的答案非常簡單。system.web.services名稱空間內部的Context類代表了web服務的上下文。換句話說,它從一個正在運行的web服務內部對不同的對象進行引用。比如Response(響應)、Request(請求)和Session對象,以及在服務上調試是否激活之類的信息。
本文我們用一個非?;镜睦觼砻枋鰞杉拢?
1、取得客戶瀏覽器的IP地址
2、取得所有的web 服務器變量
源代碼如下,很容易理解:
<%@ Webservice Language="C#" class="httpvars"
%>
using System;
using System.Collections;
using
System.Web.Services;
public class httpvars :
WebService
{
// This method returns the IP address of the
client
[WebMethod]
public String ipAddress ()
{
//
The Context object contains reference to Request object
return
Context.Request.ServerVariables["REMOTE_ADDR"];
}
// This method
returns the all the server variables as HTML
[WebMethod]
public
String allHttpVars ()
{
// Instantiate a collection that will hold
the
// key-value collection of server
variables
NameValueCollection serverVars;
String returnValue =
"";
serverVars = Context.Request.ServerVariables;
// Retrieve all
the Keys from server variables collection
// as a string
array
String[] arVars = serverVars.AllKeys;
// Loop through the
keys array and obtain the
// values corresponding to the individual
keys
for (int x = 0; x < arVars.Length;
x++)
{
returnValue+= "<b>" + arVars[x] + "</b>:
";
returnValue+= serverVars[arVars[x]] +
"<br>";
}
return returnValue;
}
}
http://www.dotnet101.com/articles/demo/art033_servervars.asmx進行代碼演示。注意:第二個方法allHttpVars()返回HTML內容。
|