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 执行个体。