Request.ServerVariables

ASPX 檢視伺服器環境變數的值

Server 物件允許使用者以 .ASP, .ASPX 取得伺服器的各項資訊,查詢伺服器提供的各項功能數值及取得用戶端的數值。

變數說明
Request.ServerVariables["ALL_HTTP"]Client 端發送的所有 HTTP 標題檔
Request.ServerVariables["ALL_RAW"]顯示未處理表格中所有的標題
Request.ServerVariables["APPL_MD_PATH"]顯示 ISAPI DLL (WAM) Application 資料庫路徑
Request.ServerVariables["APPL_PHYSICAL_PATH"]顯示與資料庫路徑相應的物理路徑
Request.ServerVariables["AUTH_PASSWORD"]該值輸入到用戶端的鑒定對話中
Request.ServerVariables["AUTH_TYPE"]用戶訪問受保護的腳本時,服務器用於檢驗用戶驗證
Request.ServerVariables["AUTH_USER"]未被鑒定的用戶名
Request.ServerVariables["CERT_COOKIE"]用戶端驗證的唯一 ID 以字串方式返回
Request.ServerVariables["CERT_FLAGS"]如有用戶端驗證則 BIT0 為 1
用戶端驗證的驗證人無效 BIT1 被設置為 1
Request.ServerVariables["CERT_ISSUER"]用戶驗證中的頒布者欄位
(O=MS, OU=IAS, CN=user name, C=USA)
Request.ServerVariables["CERT_KEYSIZE"]安全通訊端層連接關鍵字的位數例如 128
Request.ServerVariables["CERT_SECRETKEYSIZE"]伺服器驗證私人關鍵字的位數例如 1024
Request.ServerVariables["CERT_SERIALNUMBER"]用戶驗證的序列號欄位
Request.ServerVariables["CERT_SERVER_ISSUER"]伺服器驗證的頒發者欄位
Request.ServerVariables["CERT_SERVER_SUBJECT"]伺服器驗證的主欄位
Request.ServerVariables["CERT_SUBJECT"]用戶端驗證的主欄位
Request.ServerVariables["CONTENT_LENGTH"]用戶端發出內容的長度
Request.ServerVariables["CONTENT_TYPE"]內容的數據類型
Request.ServerVariables["GATEWAY_INTERFACE"]伺服器使用的 CGI 規格的修訂
Request.ServerVariables["HTTP_HEADERNAME"]HeaderName 儲存在標題文件中的值
Request.ServerVariables["HTTPS"]如果請求穿過秘密頻道 (SSL) 則返回 ON
請求來自非秘密頻道則返回 OFF
Request.ServerVariables["HTTPS_KEYSIZE"]安全通訊端層連接關鍵字的位數例如 128
Request.ServerVariables["HTTPS_SECRETKEYSIZE"]伺服器驗證私人關鍵字的位數例如 1024
Request.ServerVariables["HTTPS_SERVER_ISSUER"]伺服器驗證的頒發者欄位
Request.ServerVariables["HTTPS_SERVER_SUBJECT"]伺服器驗證的主欄位
Request.ServerVariables["INSTANCE_ID"]文本格式 IIS 實體的 ID
Request.ServerVariables["INSTANCE_META_PATH"]請求的 IIS 實體的資料庫路徑
Request.ServerVariables["LOCAL_ADDR"]返回接受請求的伺服器地址
Request.ServerVariables["LOGON_USER"]用戶登入 Windows NT® 的帳號
Request.ServerVariables["PATH_INFO"]用戶端提供的額外路徑資訊
Request.ServerVariables["PATH_TRANSLATED"]PATH_INFO 轉換後的版本
(變數獲取路徑並進行由虛擬至實體鏡射)
Request.ServerVariables["QUERY_STRING"]查詢 HTTP 請求中問號 (?) 後的信息
Request.ServerVariables["REMOTE_ADDR"]發出請求的遠程主機的 IP 位址
Request.ServerVariables["REMOTE_HOST"]發出請求的主機名稱
Request.ServerVariables["REMOTE_USER"]用戶發送的未鏡射的用戶名字串
Request.ServerVariables["REQUEST_METHOD"]該方法用於提出請求
Request.ServerVariables["SCRIPT_NAME"]執行腳本的虛擬路徑
Request.ServerVariables["SERVER_NAME"]出現自引用 UAL 中伺服器主機名 DNS 化名或 IP 地址
Request.ServerVariables["SERVER_PORT"]發送請求的 PORT
Request.ServerVariables["SERVER_PORT_SECURE"]如果安全埠處理了請求,則為 1 否則為 0
Request.ServerVariables["SERVER_PROTOCOL"]請求信息協議的名稱和修訂
Request.ServerVariables["SERVER_SOFTWARE"]應答請求並運行網關的伺服器軟件的名稱和版本
Request.ServerVariables["URL"]提供 URL 的基本部分


解析 ServerVariables 變數方式(環境變數)的方式

ASP.NET 取得 Web Server 伺服器變數的集合。顯示所有具名伺服器變數的名稱和值。.ASPX 以及 .ASP

<%
For Each x in Request.ServerVariables
  Response.Write(x & "<br />")
Next
%>


ASP.NET Environment 系統環境變量

命名空間 System 組件 System.Runtime.dll 提供目前環境和平台的資訊以及操作的方法。

OSVersion 取得目前平台的識別碼與版本。取得識別作業系統的 Version 物件。
VersionString 取得目前安裝於作業系統上之平台識別項、版本和 Service Pack 的 String 字串表示。

Environment.OSVersion.VersionString

Microsoft Windows NT 10.0.19044.0

Environment.OSVersion.Version.Major

10

Environment.OSVersion.Version.Minor

0

Environment.OSVersion.ServicePack

 

Environment.OSVersion.Platform

2

識別組件所支援的 Platform 作業系統或平台。

PlatformID.Win32NT

2

2 = Win32NT 作業系統是 Windows NT 或更新的版本。
4 = Unix 作業系統是 Unix。
6 = MacOSX 作業系統是 Macintosh。由 Silverlight 傳回。在 .NET Core 上替代的值為 Unix。
7 = Other 其他作業系統。這包括瀏覽器 (WASM)。


.NET Framework

取得包含主要版本、次要版本、組建與 Common Language Runtime 修訂編號的版本號碼。
對於 .NET Core 3.x 和 .NET 5 屬性會傳回 .NET 執行時間版本號碼。

Environment.Version.ToString()

4.0.30319.42000

對於 .NET Framework 44.54.5.14.5.2 屬性會傳回 Version 物件,其字串表示的格式為 4.0.30319.XXXXX
對於 .NET Framework 4.6 和更新版本以及 3.0 之前的 .NET Core 版本,其格式為 4.0.30319.42000
對於 .NET Framework 4.5 和更新的版本,不推薦使用 Version 屬性來偵測 .NET Framework 版本。

返回 Common Language Runtime 環境的資訊之 static 方法的集合。

<%@ Import Namespace="System.Runtime.InteropServices" %>

取得正在目前處理序中執行的 Common Language Runtime 的版本號碼。

RuntimeEnvironment.GetSystemVersion()

v4.0.30319


Environment.MachineName '取得本機電腦的 NetBIOS 名稱。
Environment.UserDomainName '取得與目前使用者相關聯的網路網域名稱。「需要使用、權限要求」
Environment.UserName '取得與目前執行緒建立關聯的人員使用者名稱。

DefaultAppPool

Environment.Is64BitOperatingSystem '目前的作業系統是否為 64 位元作業系統。

True

Environment.Is64BitProcess '目前的處理序是否為 64 位元處理序。

False

Environment.ProcessorCount '目前進程可用的 CPU 處理器數目。

8 / 12 / 16 / 24 / 32

CPU 處理器的核心數例如、四核心 / 六核心 / 八核心 / i9-12900K 十六核心... i9-13900KF24 核心。

Intel LGA 1700 - i9-13900KF 採用 Raptor Lake 處理器,具備 8 個 P-Core 與 16 個 E-Core,共 24 核心、32 執行緒。基本時脈為 3.0GHz,最高超頻時脈為 5.8GHz,全核則是 5.5GHz。快取方面共有 68MB,功耗為 250W Intel 將會提供極致效能模式,於高階 Z790 主機板可以提升到 350W 釋放出更多效能。


取得或設定目前工作資料夾的完整路徑。「需要使用、權限要求」

Environment.CurrentDirectory = Environment.GetEnvironmentVariable("windir")

C:\WINDOWS

取得系統資料夾(目錄)的完整路徑。「需要使用、權限要求」

Environment.SystemDirectory

C:\WINDOWS\system32

取得指定之系統特殊資料夾的路徑。「需要使用、權限要求」

Environment.GetFolderPath(Environment.SpecialFolder.System)

C:\WINDOWS\system32



HttpRequest.ServerVariables 屬性

IIS Server Variables 服務器變量提供有關服務器、與客戶端的連接以及連接上的當前請求的信息。IIS 服務器變量與環境變量不同。安全上的問題、一些服務器變量從 HTTP 標頭中獲取信息。 建議不要信任 HTTP 標頭中的信息,因為這些數據可能會被惡意用戶偽造。

https://docs.microsoft.com/zh-tw/dotnet/api/system.web.httprequest.servervariables?view=netframework-4.8

<%
Dim loop1, loop2 As Integer
Dim arr1(), arr2() As String
Dim nameCollection As NameValueCollection
' 將 ServerVariable 集合加載到 NameValueCollection 對像中。
nameCollection = Request.ServerVariables
' 將所有鍵的名稱 String 字符串放入 Array 陣列中。
arr1 = nameCollection.AllKeys
For loop1 = 0 To arr1.GetUpperBound(0)
   Response.Write("Key : " & arr1(loop1) & "<br />")
   arr2 = nameCollection.GetValues(loop1) ' Get all values under this key.
   For loop2 = 0 To arr2.GetUpperBound(0)
      Response.Write("Value " & CStr(loop2) & " : " & Server.HtmlEncode(arr2(loop2)) & "<br />")
   Next loop2
Next loop1
%>


StringBuilder 開發應用程式資訊

取得目前應用程式 HttpRuntime 類別屬性,開發人員可以用來找出目前應用程式域的診斷相關資訊,觀察衍生或 SimpleWorkerRequest 類別的 HttpWorkerRequest 類別呼叫 ProcessRequest 方法。

https://docs.microsoft.com/zh-tw/dotnet/api/system.web.httpruntime?view=netframework-4.8


屬性 Properties

AppDomainAppId 取得 HttpRuntime 存在的應用程式定義域的應用程式識別。

AppDomainAppPath 取得目前應用程式定義域裡裝載 (Host) 應用程式的應用程式目錄的實體磁碟路徑。

AppDomainAppVirtualPath 取得包含目前應用程式定義域裡裝載應用程式的目錄的虛擬路徑。

AppDomainId 取得 HttpRuntime 執行個體所在之應用程式定義域的定義域識別。

AspClientScriptPhysicalPath 取得 ASP.NET 用戶端指令碼檔的資料夾路徑。

AspClientScriptVirtualPath 取得 ASP.NET 用戶端指令碼檔的虛擬路徑。

AspInstallDirectory 取得 ASP.NET 可執行檔安裝的目錄的實體路徑。

BinDirectory 取得目前應用程式的 /bin 目錄的實體路徑。

Cache 取得目前應用程式的 Cache

ClrInstallDirectory 取得 Common Language Runtime 可執行檔安裝的目錄的實體路徑。

CodegenDir 取得 ASP.NET 儲存目前應用程式的暫存檔 (產生的來源、編譯的組譯等) 的目錄實體路徑。

IISVersion 取得裝載此應用程式的 IIS 版本。

IsOnUNCShare 取得值,指出應用程式是否對應至通用命名規範 (Universal Naming ConventionUNC) 共用。

MachineConfigurationDirectory 取得目前應用程式的 Machine.config 檔所在位置的目錄的實體路徑。

TargetFramework 取得目前 Web 應用程式以之為設計目標的 .NET Framework 版本。

UsingIntegratedPipeline 取得值,指出目前的應用程式是否在 IIS 的整合管線模式中執行。

WebObjectActivator 取得或設定相依性插入支援的 IServiceProvider 執行個體。