ホームページ >バックエンド開発 >C#.Net チュートリアル >Asp.net 組み込みオブジェクトの概要 Request オブジェクトの使用例

Asp.net 組み込みオブジェクトの概要 Request オブジェクトの使用例

零下一度
零下一度オリジナル
2017-05-23 11:45:372904ブラウズ

Request オブジェクトは主に、ユーザーが入力したデータ、クライアントに保存された Cookie など、クライアントからデータを取得するために使用されます。この記事では、Request オブジェクトに焦点を当て、その主な機能であるフォーム変数の読み取りと読み取りについて説明します。 Web サーバー上のシステム情報を取得するためのクエリ文字列。クライアントのブラウザ情報などを取得します。興味のある友人はそれについて学ぶことができます

前書き:
Request オブジェクトは主に、ユーザーが入力したデータ、クライアントに保存された Cookie など、クライアントからデータを取得するために使用されます。

1. Request オブジェクトの概要

1. 主な属性

リクエストされているクライアントのブラウザ機能に関する情報を取得します。属性値は次のとおりです: HttpBrowserCapabilities オブジェクト エンティティ本体の 文字セット クライアントによって送信されるコンテンツの長さをバイト単位で指定します。 受信リクエストの MIME コンテンツ タイプを取得または設定します。 。 クライアントによって送信された Cookie コレクションを取得します。属性値は、クライアントの Cookie 変数を表す HttpCookieCollection オブジェクトですCurrentExecutionFilePath 現在のリクエストの仮想パスを取得します クライアントによってアップロードされたファイル コレクションを取得します。属性値は HttpFileCollection オブジェクトで、クライアントによってアップロードされたファイル コレクションを表します フォーム変数コレクションを取得します クライアントが使用する HTTP データ送信メソッドを取得します (次のような) get、post または head Cookies、Form、QueryString、または ServerVariables コレクション内の指定されたオブジェクトを取得します Cookies、Form、QueryString または ServerVariables 項目の結合されたコレクションを取得します Get 現在のリクエストの仮想パス URL 拡張子を持つリソースの追加パス情報を取得します ルート ディレクトリの物理ファイル システム パスを取得します現在実行中のサーバーアプリケーション リクエストされた URL に対応する物理ファイルパスを取得します HTTP クエリ文字列変数のコレクションを取得します。属性値は次のとおりです: クライアントによって送信されたクエリ文字列変数のコレクションを含む NameValueCollection オブジェクト クライアントが HTTP データ送信を使用する方法 (get または post) を取得または設定します Web サーバー変数のコレクションを取得します 現在の入力ストリームのバイト数を取得します 現在のリクエスト URL に関する情報を取得します IP ホスト アドレスを取得しますリモートクライアントの
ApplicationPath サーバー上の asp.net ブラウザの仮想アプリケーション ルート パスを取得します。
ContentEncoding
を取得または設定します。この属性の値は文字セットです。 クライアントを表す Encoding オブジェクトです。 ContentLength
ContentType
Cookies
現在のリクエストの仮想パスを取得します FilePath
Files
Form
HttpMethod
) item
Params
Path
PathInfo
PhysicalApplicationPath
PhysicalPath
QueryString
RequestType
ServerVariables
TotalBytes
Url
UserHostAddress

2. メインメソッド

(1) MapPath (VirtualPath): 現在リクエストされている URL 内の仮想パス virtualPath をサーバー上の物理パスにマッピングします。パラメータ virtualPath は、現在のリクエストの仮想パスを指定します。これは、絶対パスまたは相対パスにすることができます。このメソッドの戻り値は、virtualPath で指定されたサーバーの物理パスです。

(2)名前を付けて保存 (ファイル名、ヘッダーを含む): http リクエストをディスクに保存します。パラメーター filename は物理ドライブのパスを指定し、 includeHeaders は HTTP ヘッダーをディスクに保存するかどうかを指定するブール値です。

2. Request オブジェクトの応用

1. フォーム変数を読み取る 4 つの方法(1)。Request.QueryString プロパティを使用して読み取ります。フォーム変数

(3)。Request.Params プロパティを使用してフォーム変数を読み取ります

(4)。Request.Form プロパティを使用してフォーム変数を読み取ります

(1)。

HtmlForm コントロールの Method プロパティのデフォルト値は post です。この場合、ユーザーが Web ページを送信すると、フォーム データが HTTP ヘッダーの形式でサーバー側に送信されます。この時点で、Request オブジェクトの Form プロパティを使用してフォーム変数を読み取ることができます。例: txtUserName および txtPassword テキスト ボックス コントロール、その値は次の形式で読み取ることができます: Request.Form["txtUserName"] ;Request.Form["txtPassword"]

(2) Request.QueryString プロパティを使用します。フォーム変数を取得します

HtmlForm コントロールの Method プロパティを get に設定すると、ユーザーが Web ページを送信すると、フォーム データが URL に追加されてサーバーに送信されます。この場合、Request オブジェクトの QueryString プロパティを使用してフォーム変数を読み取ることができます。 Request.QueryString["txtUserName"] ;Request.QueryString["txtPassword"]

(3) Request.Params プロパティを使用してフォーム変数を読み取ります

HtmlForm コントロールの Method プロパティがどのような値であっても、次のように使用できます。 Request オブジェクトの Params プロパティは、Request.Params["txtPassword"] や Request.["txtPassword"] などのフォーム変数の内容を読み取るために使用されます。GET によって送信されたデータは最初に取得され、QueryString にリストされます。 Form、ServerVariableの順に再検索します。

Request: 上記2つのメソッドが含まれており(GETメソッドで送信されたデータが先に取得されます)、QueryString、Form、ServerVariableの順に検索します。 Request.Params は post と get で渡されるすべての値のコレクションであり、実際には request.QueryString、request.Form、request.cookies、request.ServerVariable が順に含まれるコレクションです。

注: Request.Params を使用する場合、これらのコレクション項目の間に同じ名前の項目が存在しないようにすることが最善です。フォーム内のデータの一部のみが必要で、Request.Form の代わりに Request を使用する場合、プログラムは QueryString と ServerVariable も検索します。 QueryString または ServerVariable に同じ名前の項目が存在する場合、取得される値は目的の値ではありません。

(4) サーバー コントロールのプロパティからフォーム変数を直接読み取る

上記の 3 つの方法に加えて、サーバー コントロールのプロパティからフォーム変数を直接読み取ることもできます。これは最も一般的に使用される方法です。フォームデータを取得するのが最も簡単な方法です。例: txtUserName.Text

2.クエリ文字列変数を読み取ります

Web を閲覧すると、ブラウザーのアドレス バーに「xxx.aspx?id=8018」などの URL が表示されることがよくあります。xxx.aspx は、アクセスしたい .aspx Web ページを表します。および疑問符 (?) に続く内容はクエリ文字列で、その機能は変数の名前と値をこの ASP.NET ファイルに転送して処理することです。クエリ文字列変数はいくつかの方法で生成できます。

(1). HtmlForm コントロールの Method プロパティが get に設定されている場合、ユーザーが Web ページを送信すると、フォーム データがクエリ文字列変数として URL に添付され、サーバーに送信されます。 (2)。3499910bf9dac5ae3c52d5ede73834855db79b134e9f6b82c0b36e0489ee08ed タグまたは HyperLink コントロールを使用してハイパーテキスト リンクを作成する場合、クエリ文字列をターゲット URL の後に置き、疑問符「?」を使用します。 URL とクエリ文字列

(3)。Response.Redirect メソッドを呼び出すときに、URL パラメーターに変数名と値のペアがアタッチされている場合、これらの変数値は URL にアタッチされ、ターゲット時にサーバーに送信されます。ウェブページが開きます。

(4). ブラウザのアドレスバーにリクエストURLを入力する際は、URLの後ろに疑問符「?」を入力してください。例: http://…/t.aspx?Id=8018

上記の状況では、クエリ文字列変数は Request.QueryString プロパティを通じて取得できます。

次のコード:

//在登陆页面 protected void Button1_Click(object sender, EventArgs e) { //登陆 //if (txtUserName.Text == "admin" && txtPwd.Text == "123") //{ // Session["Info"] = "随便一个值"; // Response.Redirect("Request2_test.aspx?Info=" + txtUserName.Text); //} //else //{ // Response.Redirect("Request2_test.aspx?error=登陆失败!"); //} /***********************************方法2****************************************/ //或者 if (txtUserName.Text == "admin" && txtPwd.Text == "123") { Response.Redirect("Request2_test.aspx?Info=" + txtUserName.Text + "&check=1"); } else { Response.Redirect("Request2_test.aspx?error=登陆失败!"); } }

認証ページで

コードは次のとおりです:

protected void Page_Load(object sender, EventArgs e) 
{ 
//验证页面 
//if (Session["Info"] != 
null
 && Session["Info"].ToString() == "随便一个值") 
//{ 
// Response.Write("登陆成功!<br>" + Request.QueryString["Info"] + ",欢迎访问本站"); 
// //Response.Write("登陆成功!<br>" + Request["Info"] + ",欢迎访问本站"); 
// //Response.Write("登录成功!<br>"+Request.Form["username"]+",欢迎访问本站"); 
//} 
//else 
//{ 
// Response.Write("登陆失败"); 
//} 
/***************************************方法2**********************************/ 
if (Convert.ToInt32(Request["check"]) == 1) 
{ 
Response.Write("登陆成功!<br>" + Request.QueryString["Info"] + ",欢迎访问本站"); 
} 
else 
{ 
Response.Write("登陆失败"); 
} 
}


3. Web サーバー側のシステム情報を取得します

Request オブジェクトは、ServerVariables コレクション オブジェクトを使用してサーバー側のシステム情報を保存します。これらの情報変数は HTTP ヘッダーに含まれ、HTTP リクエストとともに送信されます。 Request オブジェクトの ServerVariables コレクション オブジェクトを使用して環境変数を取得する構文は次のとおりです: Request.ServerVariables[環境変数名]

ServerVariables コレクション オブジェクトに保存される共通情報変数は次のとおりです:

 代码如下:

Response.Write(Request.ServerVariables["LOCAL_ADDR"]);//远端服务器的地址 Response.Write("<br>"); Response.Write(Request.ServerVariables["Remote_ADDR"]);//浏览器所在主机的IP地址 Response.Write("<br>"); Response.Write(Request.Browser.Type.ToString());//浏览器的类型 Response.Write("<br>"); Response.Write(Request.Browser.Platform.ToString());//浏览器所在的平台 Response.Write("<br>"); Response.Write(Request.ServerVariables["url"]);

4.取得客户端浏览器信息

通过Request对象的Browser属性得到。需要利用Browser属性生成一个HttpBrowserCapabilities类型的对象实例。HttpBrowserCapabilities类具有的常用属性如下:

 代码如下:

Response.Write("浏览器的类型是:" + Request.Browser.Browser.ToString()+"<br>"); Response.Write("浏览器的版本是:" + Request.Browser.Version.ToString()+"<br>"); Response.Write("浏览器的所在平台是:" + Request.Browser.Platform.ToString()+"<br>"); Response.Write("浏览器是否支持框架:" + Request.Browser.Frames.ToString()+"<br>"); Response.Write("浏览器是否支持Cookies:" + Request.Browser.Cookies.ToString()+"<br>"); Response.Write("浏览器是否支持Javascript:" + Request.Browser.JavaScript.ToString()+"<br>");

5.读取客户端Cookie

Cookie是在HTTP协议下服务器或脚本可以维护客户工作站上信息的一种方式。Cookie是由Web服务器保存在用户浏览器上的小文本文件,它可以包含有关用户的信息,这些信息以名/值对的形式储存在文本文件中。无论何时,只要用户连接接到服务器,Web站点就可以访问Cookie信息。Cookie保存在用户的Cookie文件中,当下一次用户返回时,仍然可以对它进行调用。

Cookies集合是由一些Cookie对象组成的。Cookie对象的类名为HttpCookie。HttpCookie类的主要属性如下:

使用Cookie时,应注意以下几点

[1].使用Cookie保存客户端浏览器请求服务器页面的请求信息时,保存时间的长短取决于Cookie对象的Expires属性,可以根据需要来设置。若未设置Cookie的失效日期,则它们仅保存到关闭浏览器为止。若将Cookie对象的Expires属性设置为DateTime.MaxValue,则表示Cookie永远不会过期。

[2].Cookie存储的数据量有所限制,大多数浏览器支持的最大容量为4096字节,因此不要用Cookie来保存大量数据。

[3].  并非所有浏览器都支持Cookie,并且数据是以明文形式保存在客户端计算机中,因此最好不要用Cookie来保存敏感的未加密数据。

[4].在ASP.NET中有两个Cookies集合,即:Response对象的Cookies集合和Request对象的Cookies集合,但两者的作用有所不同,通过前者可以将Cookie写入客户端,通过后者可以读取存储在客户端的Cookie。

如下操作:

示例如下:

代码如下:

protected void Page_Load(object sender, EventArgs e) 
{ 
HttpCookie c1=Request.Cookies["UserName"]; 
HttpCookie c2 = Request.Cookies["Password"]; 
if (c1 != null || c2 != null) 
{ 
//当保存完Cookie之后(也就是说"保存或永久保存"),这个才能输出,当第二次用统一浏览器打开该网站的时候就会输出 
Response.Write(c1.Value + "欢迎光临"); 
} 
} 
protected void Button1_Click(object sender, EventArgs e) 
{ 
//提交 
if (TextBox1.Text == "admin" && TextBox2.Text == "123") 
{ 
Response.Write("欢迎光临"+TextBox1.Text); 
Response.Cookies["UserName"].Value = TextBox1.Text; 
Response.Cookies["Password"].Value = TextBox2.Text; 
if (Dro
pDo
wn
List
1.SelectedItem.Text == "永久保存") 
{ 
//默认cookies失效时间是直到关闭浏览器 
//Cookie保存永久 
Response.Cookies["UserName"].Expires = DateTime.MaxValue; 
Response.Cookies["Password"].Expires = DateTime.MaxValue; 
} 
else 
{ 
//Cookie永不保存 
Response.Cookies["UserName"].Expires = DateTime.Now; 
Response.Cookies["Password"].Expires = DateTime.Now; 
} 
} 
}

当我们再次打开该网站(同一浏览器)的时候,就会弹出“admin欢迎光临"

【相关推荐】

1. 谈谈Request和Response这两个对象的使用

2. 分享一个Request对象小案例

3. 分享asp中request对象五个获取客户端资料的方法

4. 详解ASP.NET 系统对象之Request

以上がAsp.net 組み込みオブジェクトの概要 Request オブジェクトの使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。