web程序中获取应用程序系统变量的方法( For.net 1.1)

201 篇文章 0 订阅
100 篇文章 0 订阅

获取系统变量在.net 的web应用程序中的确是非常方便,比如获取 "http://ap2:8080/"或者"http://10.0.0.1/mypplication/"等诸如此类的系统变量。
注:本文主要是针对.net Framework 1.0、1.1的情况,因为.net 2.0的命名空间已经发生了很大的变化,在后面的文章中将会专门加以介绍

为描述方便,先新建一aspx文件,前台文件如下:

< body  MS_POSITIONING ="GridLayout" >
        
< form  id ="Form2"  method ="post"  runat ="server" >
            
< FONT  face ="宋体" >
                
< asp:Button  id ="btn_Page"  style ="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 16px"  runat ="server"
                    Text
="通过Page获取" ></ asp:Button >
                
< asp:Label  id ="lbInfo1"  style ="Z-INDEX: 102; LEFT: 48px; POSITION: absolute; TOP: 56px"  runat ="server" ></ asp:Label >
                
< asp:Button  id ="btn_ServerVal"  style ="Z-INDEX: 103; LEFT: 520px; POSITION: absolute; TOP: 16px"
                    runat
="server"  Text ="通过ServerVariables获取" ></ asp:Button >
                
< asp:Label  id ="lbInfo2"  style ="Z-INDEX: 104; LEFT: 48px; POSITION: absolute; TOP: 80px"  runat ="server" ></ asp:Label >
                
< asp:Label  id ="lbInfo3"  style ="Z-INDEX: 105; LEFT: 48px; POSITION: absolute; TOP: 104px"  runat ="server" ></ asp:Label >
                
< asp:Button  id ="btn_Cintext"  style ="Z-INDEX: 106; LEFT: 280px; POSITION: absolute; TOP: 16px"
                    runat
="server"  Text ="通过Context获取" ></ asp:Button ></ FONT >
        
</ form >
    
</ body >




第一种方法,直接在在页面中获取。利用Page.Request命名空间。

private   void  btn_Page_Click( object  sender, System.EventArgs e)
        
{
            
this .lbInfo2.Text = "" ;
            
this .lbInfo3.Text = "" ;
            
this .lbInfo1.Text = Page.Request.ApplicationPath + " <br/> "
                
+ Page.Request.CurrentExecutionFilePath + " <br/> "
                
+ Page.Request.UserHostAddress + " <br/> "
                
+ Page.Request.Url.Host + " <br/> "
                
+ Page.Request.RawUrl + " <br/> "
                
+ Page.Request.UserHostName + " <br/> "
                
+ Page.Request.Url.HostNameType + " <br/> "
                
+ Page.Request.Url.Port + " <br/> "
                
+ Page.Request.UrlReferrer.Host + " <br/> "
                
+ Page.Request.Url.LocalPath + " <br/> "
                
+ Page.Request.Url.Authority + " <br/> "
                
+ Page.Request.Url.UserInfo + " <br/> "
                
+ " <br/> " ;
        
        }


第二种方法:在非Web项目中用Context的Request方法。

private   void  btn_Cintext_Click( object  sender, System.EventArgs e)
        
{
            
this .lbInfo1.Text = "" ;
            
this .lbInfo3.Text = "" ;
            
this .lbInfo2.Text =
                System.Web.HttpContext.Current.Server.MachineName
+ " <br/> "
                
+ System.Web.HttpContext.Current.Request.ApplicationPath + " <br/> "
                
+ System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + " <br/> "
                
+ System.Web.HttpContext.Current.Request.RawUrl + " <br/> "
                
+ System.Web.HttpContext.Current.Request.Url + " <br/> "
                
+ System.Web.HttpContext.Current.Request.UserHostAddress + " <br/> "
                
+ System.Web.HttpContext.Current.Request.UserHostName + " <br/> "
                
+ System.Web.HttpContext.Current.Request.RequestType + " <br/> "
                
+ System.Web.HttpContext.Current.Request.UrlReferrer.Host + " <br/> "
                
+ System.Web.HttpContext.Current.Request.UrlReferrer.HostNameType + " <br/> "
                
+ System.Web.HttpContext.Current.Request.Path + " <br/> "
                
+ System.Web.HttpContext.Current.Request.Url.Port + " <br/> "
                
+ System.Web.HttpContext.Current.Request.Url.IsDefaultPort.ToString() + " <br/> "
                
+ System.Web.HttpContext.Current.Request.Url.IsFile.ToString() + " <br/> "
                
+ System.Web.HttpContext.Current.Request.Url.LocalPath + " <br/> "
                
+ " <br/> " ;
        
        }



第三种方法:可以从Request.ServerVariables的集合中获取 。获取的变量也最全。

private   void  btn_ServerVal_Click( object  sender, System.EventArgs e)
        
{
        
            
this .lbInfo1.Text = "" ;
            
this .lbInfo2.Text = "" ;
            
int  loop1, loop2;
            System.Collections.Specialized.NameValueCollection coll;

            
// 以下两种方式均可
            
// coll=Page.Request.ServerVariables; 
            coll = System.Web.HttpContext.Current.Request.ServerVariables; 
            
this .lbInfo3.Text = "" ;
            
//  Get names of all keys into a string array. 
            String[] arr1  =  coll.AllKeys; 
            
for  (loop1  =   0 ; loop1  <  arr1.Length; loop1 ++
            
{
                
this .lbInfo3.Text += ( " Key:  "   +  arr1[loop1]  +   " <br> " );
                String[] arr2
= coll.GetValues(arr1[loop1]);
                
for  (loop2  =   0 ; loop2  <  arr2.Length; loop2 ++
                
{
                    
this .lbInfo3.Text += ( " Value  "   +  loop2  +   " "   +  Server.HtmlEncode(arr2[loop2])  +   " <br> " );
                }

            }

        }

 

亦可用于 Web service

注意,以上方法获取IP未必真实。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值