asp.net 获得域名,端口,虚拟目录

时间:2021-03-03 12:17:10

记性不好,好多次都被路径问题给拦住了.我现在想得到一个资源的全URL路径,因此首先想得到网站当前的域名,端口和虚拟目录.看下表

底下這張表就是各種跟 Browser Request 的網址相關的屬性與用法:

 

網址:http://localhost:1897/News/Press/Content.aspx/123?id=1#toc
Request.ApplicationPath /
Request.PhysicalPath D:\Projects\Solution\web\News\Press\Content.aspx
System.IO.Path.GetDirectoryName(Request.PhysicalPath) D:\Projects\Solution\web\News\Press
Request.PhysicalApplicationPath D:\Projects\Solution\web\
System.IO.Path.GetFileName(Request.PhysicalPath) Content.aspx
Request.CurrentExecutionFilePath /News/Press/Content.aspx
Request.FilePath /News/Press/Content.aspx
Request.Path /News/Press/Content.aspx/123
Request.RawUrl /News/Press/Content.aspx/123?id=1
Request.Url.AbsolutePath /News/Press/Content.aspx/123
Request.Url.AbsoluteUri http://localhost:1897/News/Press/Content.aspx/123?id=1
Request.Url.Scheme http
Request.Url.Host localhost
Request.Url.Port 1897
Request.Url.Authority localhost:1897
Request.Url.LocalPath /News/Press/Content.aspx/123
Request.PathInfo /123
Request.Url.PathAndQuery /News/Press/Content.aspx/123?id=1
Request.Url.Query ?id=1
Request.Url.Fragment  
Request.Url.Segments /
News/
Press/
Content.aspx/
123

 


设当前页完整地址是:http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli 
"http://"是协议名 
"www.jb51.net"是域名 
"aaa"是站点名 
"bbb.aspx"是页面名(文件名) 
"id=5&name=kelli"是参数 
【1】获取 完整url (协议名+域名+站点名+文件名+参数) 

复制代码代码如下:

string url=Request.Url.ToString();  
url= http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli  

【2】获取 站点名+页面名+参数: 
复制代码代码如下:

string url=Request.RawUrl;  
(或 string url=Request.Url.PathAndQuery;)  
url= /aaa/bbb.aspx?id=5&name=kelli  

【3】获取 站点名+页面名: 
复制代码代码如下:

string url=HttpContext.Current.Request.Url.AbsolutePath;  
(或 string url= HttpContext.Current.Request.Path;)  
url= aaa/bbb.aspx  

【4】获取 域名: 
复制代码代码如下:

string url=HttpContext.Current.Request.Url.Host;  
url= www.jb51.net  

【5】获取 参数: 
复制代码代码如下:

string url= HttpContext.Current.Request.Url.Query;  
url= ?id=5&name=kelli  


复制代码代码如下:

Request.RawUrl:获取客户端请求的URL信息(不包括主机和端口)------>/Default2.aspx  
Request.ApplicationPath:获取服务器上ASP.NET应用程序的虚拟路径。------>/  
Request.CurrentExecutionFilePath:获取当前请求的虚拟路径。------>/Default2.aspx  
Request.Path:获取当前请求的虚拟路径。------>/Default2.aspx  
Request.PathInfo:取具有URL扩展名的资源的附加路径信息------>  
Request.PhysicalPath:获取与请求的URL相对应的物理文件系统路径。------>E:\temp\Default2.aspx  
Request.Url.LocalPath:------>/Default2.aspx  
Request.Url.AbsoluteUri:------>http://localhost:8080/Default2.aspx  
Request.Url.AbsolutePath:---------------------------->/Default2.aspx