<html><head>		<META http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" href="josh.css"></head><body bgcolor="#FFFFFF"><div id="AcceptTypes">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">AcceptTypes</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringArray = Request.AcceptTypes</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>クライアントが受け入れる MIME (Multipurpose Internet Mail Extension) タイプを保持する文字列配列を返します。このプロパティを使用して、Word や Excel のようなアプリケーションのタイプなど、特定のタイプの応答をクライアントが受け入れ可能かどうかを判断できます。Word や Excel は、Internet Explorer だけがサポートしています。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
						<tr>
							<td><p>次の表に、一般的な MIME タイプの一部を示します。</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
						<tr>
							<td>
								<table border="1"><tbody><tr><th>MIME タイプ</th><th>説明</th></tr>
										<tr><td>text/html</td><td>HTML テキストコンテンツ</td>
										</tr>
										<tr><td>text/xml</td><td>XML テキストコンテンツ</td>
										</tr>
										<tr><td>image/gif</td><td>GIF エンコードされたイメージデータ</td>
										</tr>
										<tr><td>image/jpg</td><td>JPEG エンコードされたイメージデータ</td>
										</tr>
										<tr><td>application/msword</td><td>Microsoft Word のバイナリデータ</td>
										</tr>
									</tbody></table>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringArray</span></i><br>&#160;
						  受け入れるタイプの配列をプロパティから受け取る文字列配列です。
</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次のコード例では、文字列配列と整数カウンタの変数を宣言し、AcceptTypes プロパティ値をその配列変数に代入します。次に、カウンタ変数を使用して配列メンバーを繰り返し実行し、Message Label コントロールを使用して、各値をブラウザに書き込みます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   'Display Accept Types
   Dim MyArray(  ) As String
   Dim I As Integer
   MyArray = Request.AcceptTypes
   For I = 0 To MyArray.GetUpperBound(0)
      Message.Text &amp;= "Type " &amp; CStr(I) &amp; ": " &amp; CStr(MyArray(I)) &amp; _
              "&lt;br/&gt;"
   Next I
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>コードの出力は、次のようになります。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li>Type 0: image/gif</li><li>Type 1: image/x-xbitmap</li><li>Type 2: image/jpeg</li><li>Type 3: image/pjpeg</li><li>Type 4: application/vnd.ms-powerpoint</li><li>Type 5: application/vnd.ms-excel</li><li>Type 6: application/msword</li><li>Type 7:  */*</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このプロパティにより、クライアントが処理できない応答をサーバーからクライアントに送信して時間を無駄にすることを防ぐことができます。たとえば、通常は、Excle ワークシートを返すことによって実現される要求を、クライアントが Excel MIME タイプ <span class="literal">application/vnd.ms-excel</span> をサポートしない場合に、別のタイプの応答を使用して実現できます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="ApplicationPath">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">ApplicationPath</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar = Request.ApplicationPath</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>現在のアプリケーションの仮想ルートへのパスを保持する文字列を返します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  ApplicationPath プロパティの値を受け取る文字列変数です。
</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次のコード例では、ApplicationPath を取得し、取得したパスを Message Label コントロールを使用してクライアントに書き込みます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Message.Text = Request.ApplicationPath
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>コードの出力は、要求が送信されたアプリケーションの仮想ルートの名前になります。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="Browser">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">Browser</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">bc = Request.Browser</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>クライアントブラウザの機能を示す <span class="literal">HttpBrowserCapabilities</span> クラスのインスタンスを返します返されたクラスのインスタンスを使用して、クライアントブラウザがサポートする機能を判断できます。<span class="literal">HttpBrowserCapabilities</span> クラスは、ブール値プロパティと文字列プロパティのセットとしてクライアントブラウザの機能を公開します。<span class="literal">HttpBrowserCapabilities</span> クラスには、次のプロパティがあります。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
						<tr>
							<td>
								<ul><li><i>ActiveXControls</i><br>&#160;
						  ブラウザが ActiveX コントロールをサポートするかどうかを示すブール値です。</li><li><i>AOL</i><br>&#160;
						  ブラウザが AOL ブラウザかどうかを示すブール値です。</li><li><i>BackgroundSounds</i><br>&#160;
						  ブラウザがバックグラウンドサウンドをサポートするかどうかを示すブール値です。</li><li><i>Beta</i><br>&#160;
						  ブラウザがベータソフトウェアかどうかを示すブール値です。</li><li><i>Browser</i><br>&#160;
						  User-Agent ヘッダ値を保持する文字列です。</li><li><i>CDF</i><br>&#160;
						  コンテンツのプッシュ配信用の CDF (Channel Definition Format) をブラウザがサポートするかどうかを示すブール値です。
</li><li><i>ClrVersion</i><br>&#160;
						  クライアントマシンに CLR がインストールされている場合、その CLR に関するバージョン情報を保持する System.Version オブジェクトを User-Agent ヘッダから返します。ClrVersion が <span class="literal">Nothing</span> でない場合は、Major、Minor、Revision、Build の 4 つの整数プロパティからバージョン情報を取得できます。
</li><li><i>Cookies</i><br>&#160;
						  ブラウザが Cookies をサポートするかどうかを示すブール値です。</li><li><i>Crawler</i><br>&#160;
						  ブラウザが検索エンジン Web クローラかどうかを示すブール値です。
</li><li><i>EcmaScriptVersion</i><br>&#160;
						  クライアントブラウザによってサポートされる ECMAScript のバージョンに関する情報を保持する <span class="literal">Version</span> クラスのインスタンスを返します。EcmaScriptVersion が <span class="literal">Nothing</span> でない場合は、Major、Minor、Revision、Build の 4 つの整数プロパティからバージョン情報を取得できます。
</li><li><i>Frames</i><br>&#160;
						  ブラウザがフレームをサポートするかどうかを示すブール値です。</li><li><i>Item</i><br>&#160;
						  <span class="literal">Request.Browser.Item(</span><span class="replaceable">keyname</span><span class="literal">)</span> などの値へのディクショナリインターフェイスです。
</li><li><i>JavaApplets</i><br>&#160;
						  ブラウザが Java アプレットをサポートするかどうかを示すブール値です。</li><li><i>JavaScript</i><br>&#160;
						  ブラウザが JavaScript をサポートするかどうかを示すブール値です。</li><li><i>MajorVersion</i><br>&#160;
						  ブラウザのメジャーバージョン番号を表す整数です。たとえば、IE 3.01 の場合、MajorVersion プロパティは 3 を返します。
</li><li><i>MinorVersion</i><br>&#160;
						  ブラウザのマイナーバージョン番号を表す倍精度浮動小数点型の値です。たとえば、IE 3.01 の場合、MinorVersion プロパティは .01 を返します。
</li><li><i>MSDomVersion</i><br>&#160;
						  クライアントブラウザがサポートする Microsoft XML DOM (ドキュメントオブジェクトモデル) のバージョンに関する情報を保持する <span class="literal">Version</span> クラスのインスタンスを返します。MSDomVersion が <span class="literal">Nothing</span> でない場合は、Major、Minor、Revision、Build の 4 つの整数プロパティからバージョン情報を取得できます。
</li><li><i>Platform</i><br>&#160;
						  User-Agent ヘッダにプラットフォーム名が存在する場合はその名前を保持する文字列です。
</li><li><i>Tables</i><br>&#160;
						  ブラウザが HTML テーブルをサポートするかどうかを示すブール値です。</li><li><i>Type</i><br>&#160;
						  クライアントブラウザの名前とメジャーバージョンを保持する文字列です。</li><li><i>VBScript</i><br>&#160;
						  ブラウザが VBScript をサポートするかどうかを示すブール値です。</li><li><i>Version</i><br>&#160;
						  クライアントブラウザのメジャーバージョン番号とマイナーバージョン番号の両方を保持する文字列です。
</li><li><i>W3CDomVersion</i><br>&#160;
						  クライアントブラウザがサポートする W3C (World Wide Web Consortium) XML DOM のバージョンに関する情報を保持する <span class="literal">Version</span> クラスのインスタンスを返します。W3CDomVersion が <span class="literal">Nothing</span> でない場合は、Major、Minor、Revision、Build の 4 つの整数プロパティからバージョン情報を取得できます。
</li><li><i>Win16</i><br>&#160;
						  クライアントが Win16 マシンかどうかを示すブール値です。</li><li><i>Win32</i><br>&#160;
						  クライアントが Win32 マシンかどうかを示すブール値です。</li></ul>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">bc</span></i><br>&#160;
						  HttpBrowserCapabilities 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim bc As HttpBrowserCapabilities
   bc = Request.Browser
   If bc.Cookies Then
      Message.Text = "Cookies are available with this browser"
   Else
      Message.Text = "Cookies are not available with this browser"
   End If
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>複数のブラウザをサポートする予定があり、Internet Explorer 5 や 6 または Netscape 6 などのより上位のブラウザで、最も高レベルの機能を提供する必要がある場合は、このプロパティを頻繁に使用することになります。Cookies や JavaScript などの一部のプロパティで返されるブール値は、要求を送信するブラウザのバージョンがこれらの機能をサポートしているかどうかだけを示すものであり、現在のユーザーのブラウザでこれらの機能が有効になっているかどうかはわかりません。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>このプロパティは、カスタムサーバーコントロールを開発する際に特に重要となります。これは、このプロパティにより、カスタムコントロールの出力を特定のブラウザ、またはブラウザのクラスに合わせて自動調整できるためです。カスタムコントロールの開発の詳細については、第 6 章を参照してください。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="ClientCertificate">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">ClientCertificate</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">cs = Request.ClientCertificate</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p> <span class="literal">HttpClientCertificate</span> クラスのインスタンスを返します。このクラスは、クライアントのセキュリティ証明書の設定に関する情報を公開します。公開されるプロパティには、発行者情報、キーサイズ、証明書の有効期間などがあります。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">cs</span></i><br>&#160;
						  HttpClientCertificate 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim cs As HttpClientCertificate
   cs = Request.ClientCertificate
   Message.Text = "Certificate Issuer is: " &amp; cs.Issuer &amp; "."
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このプロパティは、イントラネットの設定で使用することになります。イントラネットの設定では、ブラウザ経由で入力された一連の資格情報を使用してクライアントの認証を要求するのではなく、ユーザーの証明書サーバーから発行された証明書を限られた数のクライアントに提供してアプリケーションにアクセスするようにします。この場合、セキュリティで保護されたアクセスを提供するために、クライアント証明書が NT ユーザーアカウントにマップされます。クライアント証明書が信頼済みのサードパーティから発行される場合もありますが、この方法はほとんど使用されません。要求を行っているクライアントにクライアント証明書がインストールされていない場合、このプロパティは有効なプロパティ値を持たない HttpClientCertificate インスタンスを返します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="ContentEncoding">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">ContentEncoding</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">ce = Request.ContentEncoding</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>System.Text 名前空間にある <span class="literal">Encoding</span> クラスのインスタンスを返します。このクラスは、現在行っている要求の本文の文字エンコードを表します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">ce</span></i><br>&#160;
						  Encoding 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、ユーザーに対し現在の ContentEncoding を表示する方法を示します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim ce As System.Text.Encoding
   ce = Request.ContentEncoding
   Message.Text = "Current encoding is: " &amp; ce.EncodingName &amp; "."
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>UTF-8 コンテンツエンコードを使用する要求の場合、この例の出力は次のようになります。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Current encoding is: Unicode (UTF-8).</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="ContentLength">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">ContentLength</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">intvar = Request.ContentLength</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>クライアントから送信された要求の長さをバイト単位で表す整数 を返します。このプロパティは、HTTP 要求の本文で送信されたコンテンツの長さのみを含みます。HTTP ヘッダの長さ、または HTTP GET 要求の一部として送信されたヘッダ内のデータの長さは含みません。HTTP 要求に本文がない場合、値は 0 になります。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">intvar</span></i><br>&#160;
						  バイト単位でコンテンツの長さを受け取る整数変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、現在の要求の長さをブラウザに表示する方法を示します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim length As Integer
   length = Request.ContentLength
   Message.Text = "Length of request was: " &amp; length &amp; " bytes."
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>次のコードを使用して、サンプルページにポストすることができます。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>&lt;html&gt;
   &lt;head&gt;
      &lt;title&gt;Submit a named parameter via POST&lt;/title&gt;
   &lt;/head&gt;
&lt;body&gt;
   &lt;form id="form1" action="ContentLength.aspx" method="POST"&gt;
      &lt;h3&gt;Name:&lt;/h3&gt;
      &lt;input type="text" name="name"&gt;
      &lt;input type="submit"&gt;
   &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このプロパティを使用すると、POST 要求経由でポストされたコンテンツでアクションを行う前に、そのコンテンツの長さを調べることができます。たとえば、ファイル入力フィールドからページにファイルが渡される場合、ユーザーがアップロードするファイルを保存または処理する前に ContentLength プロパティを確認して、特定のサイズを超えるファイルがアップロードされないようにすることができます。複数のフォームフィールドを受け取る場合は、ファイルの送信に使用する HtmlInputFile コントロールの PostedFile.ContentLength プロパティを参照することによって、アップロードされるファイルのサイズに関するより明確なデータを取得できます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="ContentType">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">ContentType</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar = Request.ContentType</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>現在のクライアント要求で使用されている MIME タイプを保持する文字列を返します。GET 要求では、このプロパティが空の文字列を返す場合があります。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  コンテンツタイプを受け取る文字列変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、要求の ContentType に応じて異なるアクションをページ内で実行する方法を示します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim ct As String
   ct = Request.ContentType
   If ct = "application/x-www-form-urlencoded" Then
      'Process form input
      Message.Text = "Form data was submitted."
   Else
      Message.Text = "Content Type of request is: " &amp; ct
   End If
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>次のコードを使用して、サンプルページにポストすることができます。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>&lt;html&gt;
   &lt;head&gt;
      &lt;title&gt;Submit a named parameter via POST&lt;/title&gt;
   &lt;/head&gt;
&lt;body&gt;
   &lt;form id="form1" action="ContentType.aspx" method="POST"&gt;
      &lt;h3&gt;Name:&lt;/h3&gt;
      &lt;input type="text" name="name"&gt;
      &lt;input type="submit"&gt;
   &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このプロパティを使用して、要求のコンテンツタイプが想定したタイプであることを確認することもできます。これにより、無効な要求によるプロセッサ時間の浪費を回避したり、悪意のあるユーザーが想定外のコンテンツを送信して偽の要求をアプリケーション対して行うことを回避することができます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="FilePath">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">FilePath</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar = Request.FilePath</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>現在のクライアント要求の仮想パスを保持する文字列を返します。仮想パスには、アプリケーションのルートフォルダの名前、要求のパス内のすべてのサブフォルダ、および要求したファイル名が含まれます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  ファイルパスを受け取る文字列変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、ユーザーに対して FilePath プロパティを表示します。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim fp As String
   fp = Request.FilePath
   Message.Text = "The virtual path of the current request is: _
           &amp; "&lt;strong&gt;" &amp; fp &amp; "&lt;/strong&gt;"
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このプロパティは、本章の後の部分で説明する Path プロパティと等価です。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="HttpMethod">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">HttpMethod</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar = Request.HttpMethod</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>現在の要求のメソッド (GET、POST、または HEAD など) を保持する文字列を返します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  現在の要求の HTTP メソッドを受け取る文字列変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、HttpMethod プロパティを使用して、特定の要求に対して実行するアクションを判断します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Select Case Request.HttpMethod
      Case "POST"
         Response.Write("POST requests not allowed!&lt;br/&gt;")
         Response.End
      Case "HEAD"
         Response.Write("HEAD requests not allowed!&lt;br/&gt;")
         Response.End
      Case "GET"
         'Process request
         Message.Text = "GET requests are allowed!&lt;br/&gt;"
      Case Else
         Response.Write("Unknown request: not allowed!&lt;br/&gt;")
         Response.End
   End Select
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>メッセージを送信するために Response.Write を使用してから、Response.End を呼び出しています。Response.End を呼び出すことにより、そのページの処理が直ちに終了し、すべてのサーバーコントロール出力の表示も行われません。サンプルページに POST 要求を行うページのコードは、次のとおりです。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>&lt;html&gt;
   &lt;head&gt;
      &lt;title&gt;Submit a named parameter via POST&lt;/title&gt;
   &lt;/head&gt;
&lt;body&gt;
   &lt;form id="form1" action="HttpMethod.aspx" method="POST"&gt;
      &lt;h3&gt;Name:&lt;/h3&gt;
      &lt;input type="text" name="name"&gt;
      &lt;input type="submit"&gt;
   &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>従来の ASP では、通常、要求メソッドは ServerVariables コレクションの <span class="literal">REQUEST_METHOD</span> キーを使用して取得していました。多くの場合、このキーは、自己送信フォームのページを作成すために使用され、GET メソッドを検出した場合はフォームフィールドのセットを表示し、また POST メソッドを検出した場合はフォームフィールドから受け取った入力を処理することにより作成していました。ASP.NET Web フォームは、自己送信フォームの組み込み機能を提供します。<span class="literal">runat="server"</span> 属性を備えた 1 つのフォームを追加し、そのフォームに入力形式のサーバーコントロールを追加することにより、デベロッパーは、ページの IsPostBack プロパティを単に確認して、POST 要求または GET 要求を受け取ったかどうかを判断し、そのプロパティに基づいて目的のコードを実行できます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="InputStream">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">InputStream</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">inputstream = Request.InputStream</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>着信 HTTP 要求の本文を保持する Stream オブジェクトを返します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">inputstream</span></i><br>&#160;
						  Stream 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例は、バイト配列を使用して、特定の文字を検索し、その文字とストリームの残りのコンテンツを文字列にコピーします。次の例に示されている <span class="literal">@</span> <span class="literal">Import</span> ディレクティブは、ページの先頭に配置する必要があります。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>&lt;% @ Import Namespace="System.IO" %&gt;

Sub Page_Load(  )
   Dim InStream As Stream
   Dim iCounter, StreamLength, iRead As Integer
   Dim OutString As String
   Dim Found As Boolean

   InStream = Request.InputStream
   StreamLength = CInt(InStream.Length)
   Dim ByteArray(StreamLength) As Byte
   iRead = InStream.Read(ByteArray, 0, StreamLength)
   InStream.Close(  )

   For iCounter = 0 to StreamLength - 1
      If Found = True Then
         OutString &amp;= Chr(ByteArray(iCounter))
      End If
      If Chr(ByteArray(iCounter)) = "A" Then
         Found = True
         OutString &amp;= Chr(ByteArray(iCounter))
      End If
   Next iCounter

   Message.Text = "Output: " &amp; OutString
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>次のコードを使用して、サンプルページにポストすることができます。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>&lt;html&gt;
   &lt;head&gt;
   &lt;/head&gt;
&lt;body&gt;
   &lt;form id="form1" action="InputStream.aspx" method="POST"&gt;
      &lt;h3&gt;Name:&lt;/h3&gt;
      &lt;input type="text" name="name"&gt;
      &lt;input type="submit"&gt;
   &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>このコードは、要求の本文に出現する最初の英大文字 A を出力として返します。A 以降のすべての文字は、ストリームの末尾に返されます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このプロパティは、要求の本文をバイトレベルでフィルタリングする場合に役に立ちます。このプロパティは、POST 要求でのみ機能します。これは、要求の本文を提供する HTTP 要求のうち通常使用されるは POST 要求のみであるためです。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="IsAuthenticated">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">IsAuthenticated</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">boolvar = Request.IsAuthenticated</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>現在の要求が認証済みのユーザーから行われているかどうかを示すブール値 を返します。このプロパティは、NTLM アカウントデータベースに対して認証の検索を行います。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">boolvar</span></i><br>&#160;
						  ユーザーの認証状態を受け取るブール値変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、現在のユーザーが認証されているかどうかを調べ、そのユーザーの認証状態に応じて、2 つのメッセージのうちの 1 つを出力します。認証済みのユーザーに配信されるメッセージは、ページの User プロパティを利用して、現在のユーザーの名前とドメインを出力します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim boolAuth As Boolean

   boolAuth = Request.IsAuthenticated

   If boolAuth Then
      Message.Text = "User " &amp; Page.User.Identity.Name &amp; " is authenticated."
   Else
      Message.Text = "Current user is not authenticated."
   End If
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p><span class="literal">HttpRequest</span> クラスが公開する IsAuthenticated プロパティに加えて、<span class="literal">HttpRequest</span> クラスとほぼ同じ目的で、FormsIdentity クラス、WindowsIdentity クラス、および <span class="literal">PassportIdentity</span> クラスが IsAuthenticated プロパティを公開します。<span class="literal">HttpRequest</span> クラスの IsAuthenticated プロパティは、使用する認証方法にかかわらず、ユーザーの認証状態を返します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="IsSecureConnection">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">IsSecureConnection</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">boolvar = Request.IsSecureConnection</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>現在の接続が SSL (Secure Sockets Layer) を通信に使用するかどうかを示すブール値を返します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">boolvar</span></i><br>&#160;
						  現在の要求の SSL 状態を受け取るブール値変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、現在の要求が SSL 経由で行われたかどうかに応じて異なるアクションを実行する方法を示します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim boolvar As Boolean
   boolvar = Request.IsSecureConnection
   If boolvar = True Then
      Message.Text = "Connection is HTTPS."
   Else
      Message.Text = "Connection is HTTP."
   End If
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>通常、このプロパティを使用して、要求されたページ経由で送信するクレジットカード番号などの機密データを暗号化するなど、SSL 接続が必要となる要求が正しく実行されているかどうかを判断します。また、SSL が使用されているかどうかわからないページでこのプロパティを使用し、SSL の状態に合わせてページへの出力の表示方法を決定できます。SSL 通信での暗号化と復号化はパフォーマンスに悪影響を及ぼすので、一般的には、SSL 対応のページで使用するグラフィックスの数またはサイズ、あるいはその両方を削減することが推奨されます。このプロパティを使用して、SSL が有効ではない要求の場合は高解像度のグラフィックスを表示し、SSL 要求の場合は低解像度のグラフィックスを表示するようにできます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="Path">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">Path</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar = Request.Path</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>現在のクライアント要求の仮想パスを保持する文字列を返します。仮想パスには、アプリケーションのルートフォルダの名前、要求パス内のサブフォルダ、および要求したファイル名が含まれます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  ファイルパスを受け取る文字列変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、ユーザーに Path プロパティを表示します。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim path As String
   path = Request.FilePath
   Message.Text = "The virtual path of the current request is: " &amp; path
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このプロパティは、本章の前の部分で説明した FilePath プロパティと等価です。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="PathInfo">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">PathInfo</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar = Request.PathInfo</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>現在の要求と共に渡される任意の詳細なパス情報を保持する文字列を返します。詳細なパス情報には、要求したリソースのファイル名の後の URL に付加されるパス情報などが含まれます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  詳細なパス情報を受け取る文字列変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、クライアントブラウザに Path プロパティと PathInfo プロパティの両方を書き込みます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Message.Text = "Path = " &amp; Request.Path &amp; "&lt;br/&gt;"
   Message.Text &amp;= "Additional Path Info = " &amp; Request.PathInfo &amp; "&lt;br/&gt;"
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>PathInfo は、クエリー文字列の値などの情報は返しません。PathInfo は、リソースまたはファイルの名前の後のスラッシュ (/) に続く文字を、スラッシュ自体も含めてすべて返します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="PhysicalApplicationPath">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">PhysicalApplicationPath</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar  = Request.PhysicalApplicationPath
</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>現在のアプリケーションのルートへの物理パスを保持する文字列を返します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  アプリケーションのパスを受け取る文字列変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、PhysicalApplicationPath プロパティをブラウザに書き込みます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim physAppPath As String
   physAppPath = Request.PhysicalApplicationPath
   Message.Text = "Physical Application Path = " &amp; physAppPath
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このプロパティは、ファイルの作成やファイルへの書き込みを Web アプリケーション内で行う必要がある場合に役立ちます。ページにファイルシステムのパスをハードコーディングするのではなく、このプロパティとファイル名を組み合わせて使用して、ページの場所とは無関係に、コードが記述されたページと同じフォルダでファイルの作成および編集を行うことができます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="PhysicalPath">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">PhysicalPath</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar  = Request.PhysicalPath
</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>要求したファイルへの物理パスを保持する文字列を返します。</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  物理パスを受け取る文字列変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、PhysicalPath プロパティをブラウザに書き込みます。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim physicalPath As String
   physicalPath = Request.PhysicalPath
   Message.Text = "Physical Path = " &amp; physicalPath
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>アプリケーションのルートへのパスだけを返す PhysicalApplicationPath とは異なり、PhysicalPath プロパティは、途中のすべてのフォルダやリソースのファイル名を含めて、要求したリソースの物理的なフルパスを返します。このプロパティは、読み取りや書き込みを行おうとしているファイルが見つからない、または作成したファイルが想定した場所に存在しないなどのトラブルシューティングを行う状況では、ASP.NET のトレース機能と組み合わせて使用すると役立ちます。ページに Trace.Write ステートメントを追加して、トレースログに Path プロパティ、PhysicalApplicationPath プロパティ、および PhysicalPath プロパティを書き込むと、このようなバグの追跡に役立ちます。トレースログは <span class="literal">Trace="true"</span> 属性を <span class="literal">@</span> <span class="literal">Page</span> ディレクティブに追加することにより有効にできます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="RawUrl">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">RawUrl</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar = Request.RawUrl</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>現在の要求の未加工の URL を保持する文字列を返します。未加工の URL は、ドメイン情報に続く URL 部分から構成されます。したがって、URL http://search.support.microsoft.com/kb/c.asp の場合は、未加工の URL は <span class="emphasis">/kb/c.asp</span> になります。未加工の URL にクエリー文字列が存在する場合はそれも含みます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  未加工の URL を受け取る文字列変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、RawUrl プロパティをブラウザに書き込みます。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim stringvar As String
   stringvar = Request.RawUrl
   Message.Text = "The raw URL is: " &amp; stringvar
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="RequestType">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">RequestType</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar  = Request.RequestType
</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>RequestType プロパティは、現在の要求のタイプ (GET や POST など) を保持する文字列を返します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  要求のタイプを受け取る文字列変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、RequestType プロパティをブラウザに書き込みます。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim stringvar As String
   stringvar = Request.RequestType
   Message.Text = "The request type is: " &amp; stringvar
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このプロパティは読み取りと書き込みの両用として記載されていますが、このプロパティの値を変更しなければならない状況は実際にはありません。このプロパティを読み取り用とした見た場合は、本章の前の部分で説明した読み取り専用の HttpMethod プロパティと同じ情報を返します。このプロパティの値を変更しても、その変更により HttpMethod の値が変わることはありません。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="TotalBytes">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">TotalBytes</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">intvar = Request.TotalBytes</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>HTTP 要求の本文のサイズを表す整数値を返します。TotalBytes プロパティには、HTTP 要求ヘッダのサイズ、または GET 要求と共に渡されるクエリー文字列の値のサイズは含まれません。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">intvar</span></i><br>&#160;
						  現在行われている要求の本文のサイズをバイト単位で受け取る整数変数です。
</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、TotalBytes プロパティをブラウザに書き込みます。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim intvar As Integer
   intvar = Request.TotalBytes
   Message.Text = "The size of the current request body is: &lt;br/&gt;"
   Message.Text &amp;= intvar &amp; " bytes."
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>次のコードを使用して、サンプルページにポストすることができます。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>&lt;html&gt;
   &lt;head&gt;
      &lt;title&gt;Submit a named parameter via POST&lt;/title&gt;
   &lt;/head&gt;
&lt;body&gt;
   &lt;form id="form1" action="TotalBytes.aspx" method="POST"&gt;
      &lt;h3&gt;Name:&lt;/h3&gt;
      &lt;input type="text" name="name"&gt;
      &lt;input type="submit"&gt;
   &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このプロパティの動作は、本章の前の部分で説明した ContentLength プロパティの動作と等価です。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="Url">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">Url</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">uriObj = Request.Url</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>ユーザーが要求した現在の URL を説明するプロパティを保持する <span class="literal">Uri</span> クラスのインスタンスを返します。<span class="literal">Uri</span> クラスによって公開されるプロパティには、Scheme (プロトコル)、Port、および Host があります。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">uriObj</span></i><br>&#160;
						  Uri 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、Url プロパティが返す Uri オブジェクトを使用して、現在の要求の URL に関する情報をブラウザに書き込みます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim myUri As Uri
   myUri = Request.Url

   Message.Text = "Current request URL info - &lt;br/&gt;&lt;br/&gt;"
   Message.Text &amp;= "Protocol: " &amp; myUri.Scheme &amp; "&lt;br/&gt;"
   Message.Text &amp;= "Port: " &amp; myUri.Port &amp; "&lt;br/&gt;"
   Message.Text &amp;= "Host Name: " &amp; myUri.Host &amp; "&lt;br/&gt;"
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このプロパティが返す <span class="literal">Uri</span> クラスには、プロパティだけでなくメソッドもありますが、これらのメソッド (特に CheckHostName メソッドと CheckSchemeName メソッド) を使用するのは、Url プロパティから Uri インスタンスを受け取るときではなく、独自の Uri リソースを最初から作成する場合です。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>URI に関するメモ : URI (Uniform Resource Identifier) は、URL (Uniform Resource Locator) と比較すると、URL および URN のより一般的なバージョンです。現在、多くの場合に URI と URL は同じ意味に使われますが、この状況は URN がより頻繁に使われるようになるにつれて変化していく可能性があります。Url プロパティでは、これらの用語は同じ意味を持ちます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="UrlReferrer">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">UrlReferrer</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">uriObj = Request.UrlReferrer</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>現在要求されているリソースへのナビゲート元となるリソースの URL を説明するプロパティを保持する <span class="literal">Uri</span> クラスのインスタンスを返します。現在のリソースへのナビゲートが行われなかった場合、つまり、現在のリソースに直接アクセスした場合、UrlReferrer プロパティは <span class="literal">Nothing</span> を返します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">uriObj</span></i><br>&#160;
						  Uri 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、UrlReferrer プロパティが返した Uri オブジェクトを使用して、参照しているリソースの URL に関する情報をブラウザに書き込みます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim myUri As Uri
   myUri = Request.UrlReferrer

   If Not (myUri Is Nothing) Then
      Message.Text = "Referral URL info - &lt;br/&gt;&lt;br/&gt;"
      Message.Text &amp;= "Protocol: " &amp; myUri.Scheme &amp; "&lt;br/&gt;"
      Message.Text &amp;= "Port: " &amp; myUri.Port &amp; "&lt;br/&gt;"
      Message.Text &amp;= "Host Name: " &amp; myUri.Host &amp; "&lt;br/&gt;"
      Message.Text &amp;= "App Path: " &amp; myUri.AbsolutePath &amp; "&lt;br/&gt;"
   Else
      Message.Text = "No referral URL info available."
   End If
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>次のコードを使用して、サンプルページにリンクできます。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>&lt;html&gt;
   &lt;head&gt;
      &lt;title&gt;Link to UrlReferrer&lt;/title&gt;
   &lt;/head&gt;
&lt;body&gt;
   &lt;a href="UrlReferrer.aspx"&gt;Go to UrlReferrer.aspx&lt;/a&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このコード例では、UrlReferrer プロパティが <span class="literal">Uri</span> クラスの有効なインスタンスを返すことを確認します。別のページ上のリンクからではなく、直接ページにアクセスした場合は、UrlReferrer プロパティが <span class="literal">Nothing</span> を返します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="UserAgent">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">UserAgent</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar = Request.UserAgent</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>User-Agent ヘッダを保持する文字列を返します。User-Agent 文字列は、クライアントが要求を行うために使用するブラウザ、または携帯電話などで使用するその他の HTTP 対応のクライアントソフトウェアを識別します。ブラウザやプラットフォームによっては、この文字列により、クライアントが使用するオペレーティングシステムを識別し、また Internet Explorer の場合にはインストールされている .NET Framework のバージョンを識別することができます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  User-Agent 文字列を受け取る文字列変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、UserAgent プロパティをブラウザに書き込みます。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim stringvar As String
   stringvar = Request.UserAgent
   Message.Text = "User Agent: " &amp; stringvar
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>クライアントブラウザの機能を識別する場合は、通常、Request.Browser プロパティによって返される HttpBrowserCapabilities オブジェクトのプロパティを使用すると容易に識別できます。ただし、特定のクライアントの User-Agent が <span class="literal">HttpBrowserCapabilities</span> クラスによって確認されていない情報を返す場合があります。この場合、"<span class="emphasis">machine.config</span>" の <span class="literal">&lt;browserCaps&gt;</span> 構成セクションハンドラーに目的の情報を追加し (ASP.NET 構成の詳細については、第 8 章および第 20 章を参照)、次に、組み込みのクラスから継承することによって、また必要な <span class="literal">User-Agent</span> 属性用の独自のプロパティを追加することによって、<span class="literal">HttpBrowserCapabilities</span> クラスの独自のバージョンを作成します。このような作業を回避したい場合には、UserAgent プロパティを使用して、目的の属性に関する User-Agent 文字列を単に解析することができます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="UserHostAddress">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">UserHostAddress</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar = Request.UserHostAddress</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>要求を行ったクライアントの IP アドレス を返します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  クライアントの IP アドレスを受け取る文字列変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、UserHostAddress、UserHostName、および UserLanguages の各プロパティをブラウザに書き込みます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim HostAddress, HostName, Languages(  ) As String
   Dim iCounter As Integer

   HostAddress = Request.UserHostAddress
   HostName = Request.UserHostName
   Languages = Request.UserLanguages

   Message.Text = "Client IP Address: " &amp; HostAddress &amp; "&lt;br/&gt;"
   Message.Text &amp;= "Client Machine Name: " &amp; HostName &amp; "&lt;br/&gt;"
   For iCounter = 0 To Languages.GetUpperBound(0)
      Message.Text &amp;= "Client Language " &amp; iCounter &amp; ": " &amp; _
         CStr(Languages(iCounter)) &amp; "&lt;br/&gt;"
   Next iCounter
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="UserHostName">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">UserHostName</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr>
					<td><p><span class="replaceable">stringvar</span> = Request.UserHostName</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>要求を行っているクライアントの DNS ホスト名を保持する文字列 を返します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  ホスト名を受け取る文字列変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>UserHostAddress プロパティの例を参照してください。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>クライアントの IP アドレスを DNS 名に解決する DNS サーバーが利用できない場合、UserHostName プロパティは UserHostAddress プロパティと同様にクライアントの IP アドレスを返します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="UserLanguages">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">UserLanguages</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringArray = Request.UserLanguages</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>クライアントによってサポートされる言語の一覧を保持する並べ替え済みの文字列配列 を返します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringArray</span></i><br>&#160;
						  クライアントがサポートする言語の一覧を受け取る文字列配列変数です。
</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>UserHostAddress プロパティの例を参照してください。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このプロパティをテストするために、追加言語のサポートをブラウザに設定できます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ol><li>Internet Explorer 6 の場合は、[ツール] メニューの [インターネット オプション...] を選択します。[インターネット オプション] ダイアログの [全般] タブで、[言語...] ボタンをクリックします。[言語の優先順位] ダイアログを使用して、[言語] の一覧で言語を追加、削除、または上下に移動します。
</li><li>Netscape Navigator 6 の場合は、[編集] メニューの [設定...] を選択し、次に、左側のツリービューで [言語] ノードを選択します。右側のオプションを使用して、一覧上で言語を追加、削除、または上下に移動します。
</li></ol>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>これで、UserHostAddress の例にあるコードが記述されたページを参照すると、選択したすべての言語が選択した順に一覧表示されます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="Cookies">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">Cookies</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">HttpCookieCollection = Request.Cookies</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p> Cookies コレクションは、現在の要求の一部として送信された Cookie すべてを保持する <span class="literal">HttpCookieCollection</span> クラスのインスタンスを返します。<span class="literal">HttpCookieCollection</span> クラスには、クライアント要求の一部として渡された Cookie それぞれに対応する <span class="literal">HttpCookie</span> クラスのインスタンスが保持されています。また、Cookie に関する情報にアクセスするには、これら HttpCookie インスタンスのプロパティを利用することができます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
						<tr>
							<td><p>従来の ASP と同様に、Cookies コレクションは 1 つのコレクションとして実装されます。現に、HttpCookieCollection は .NET <span class="literal">NameObjectCollectionBase</span> クラスを継承しています。しかし、ASP.NET が実装するのは、文字列キーと文字列値のコレクションではなく、文字列キーとオブジェクト (<span class="literal">HttpCookie</span> クラスのインスタンス) のコレクションです。個々の Cookie は HttpCookie 型の変数に渡されます。また、Cookie の各値にはクラスのプロパティを使用することによってアクセスできます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
						<tr>
							<td><p>複数の値を持つディクショナリ形式の Cookie には、<span class="literal">HttpCookie</span> クラスの Values プロパティを介してアクセスできます。このクラスは、Cookie のサブキーと値を保持する NameValueCollection を返します。また、次の構文のように、個々のキーを使用してそれぞれの値を取得することもできます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
						<tr>
							<td><span class="programlisting"><pre>HttpCookie.Values("<span class="replaceable">keyname</span>")</pre>
								</span></td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">HttpCookieCollection</span></i><br>&#160;
						  HttpCookieCollection 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、Cookies プロパティから Cookie のコレクションを取得し、各キーと値を、ディクショナリ Cookie の任意のサブキーと共に書き出します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim Counter1, Counter2 As Integer
   Dim Keys(), SubKeys(  ) As String
   Dim CookieColl As HttpCookieCollection
   Dim Cookie As HttpCookie

   ' Get Cookie collection
   CookieColl = Request.Cookies

   ' Get Cookie keys
   Keys = CookieColl.AllKeys

   ' Get cookies by index
   For Counter1 = 0 To Keys.GetUpperBound(0)
      Cookie = CookieColl(Keys(Counter1))
      Message.Text = "Cookie: " &amp; Cookie.Name &amp; "&lt;br/&gt;"
      Message.Text &amp;= "Expires: " &amp; Cookie.Expires &amp; "&lt;br/&gt;"

      ' Get keys for dictionary cookie into an array
      SubKeys = Cookie.Values.AllKeys
      ' Write dictionary cookie values to the browser
      For Counter2 = 0 To SubKeys.GetUpperBound(0)
         Message.Text &amp;= "Key " &amp; CStr(Counter2) + ": " &amp; _
            SubKeys(Counter2) &amp; "&lt;br/&gt;"
         Message.Text &amp;= "Value " &amp; CStr(Counter2) + ": " &amp; _
            Cookie.Values(Counter2) &amp; "&lt;br/&gt;"
      Next Counter2
      Message.Text &amp;= "&lt;br/&gt;"
   Next Counter1
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>ASP が実装する Cookies コレクションおよび Cookies プロパティによって返される <span class="literal">HttpCookieCollection</span> クラスは、共通のプロパティセットを公開します。共通のプロパティセットについては、本章の 16.3 項で説明しています。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>ASP.NET の場合も個々の Cookie を Cookie のテキストキーおよび数値インデックスを使用して取得できますが、操作が異なるため、ASP の Cookie 処理コードを ASP.NET に包括的に移行する場合は、大幅な変更が必要になります。たとえば、次のコードでは例外が発生します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>For Each strKey In Request.Cookies
   Response.Write strKey &amp; " = " &amp; Request.Cookies(strKey) &amp; _
                  "&lt;br/&gt;"
   If Request.Cookies(strKey).HasKeys Then
      For Each strSubKey In Request.Cookies(strKey)
         Response.Write "-&gt;" &amp; strKey &amp; "(" &amp; strSubKey &amp; _
            ") = " &amp; Request.Cookies(strKey)(strSubKey) &amp; "&lt;br/&gt;"
      Next
   End If
Next</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>ASP.NET ではデフォルトで変数および変数の型の両方が必要ですが、このコードではこれらが明示的に宣言されていません。また、Request.Cookies(<span class="replaceable">key</span>) プロパティから返されるのが文字列ではなく HttpCookie インスタンスであるため、このコードは失敗します。文字列を必要とする Response.Write ステートメント用に、HttpCookie インスタンスを文字列に暗黙に変換することはできません。また、Request.Cookies(<span class="replaceable">key</span>) を呼び出しても、ディクショナリ Cookie のサブキーは取得されません。幸い、前述のコードを機能させるための変更は、次に示すようにかなり単純です。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>For Each strKey In Request.Cookies
   Message.Text = strKey &amp; " = " &amp; _
      Request.Cookies(strKey).ToString(  ) &amp; "&lt;br/&gt;"
   If Request.Cookies(strKey).HasKeys Then
      For Each strSubKey In Request.Cookies(strKey).Values
         Message.Text = "-&gt;" &amp; strKey &amp; "(" &amp; strSubKey &amp; _
            ") = " &amp; Request.Cookies(strKey)(strSubKey).ToString(  ) _
            &amp; "&lt;br/&gt;"
      Next
   End If
Next</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>最初の問題点を解決するには、HttpCookie の Value メソッドを使用して、Cookie の値を文字列として取得します。2 番目の問題点の解決策は、HttpCookie インスタンスの Values プロパティを呼び出すことです。これにより、ディクショナリ Cookie のサブキーを取得できます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>ASP ではテキストベースで行っていた Cookie のキーや値の操作が、ASP.NET ではクラスベースの操作に変更になったことにより、Cookie に対する読み取りや書き込みを行う場合に、<span class="literal">HttpCookie</span> クラスの Expires プロパティを利用できるようになりました。ASP では、Cookie の Expires プロパティの読み取りを試みると、エラーになります。残念ながら、これを執筆している時点では、HttpCookie の Expires プロパティは実際には Cookie の有効期限を返しません。代わりに、値 12:00:00 AM を返します。このことはプロパティが読み取り可能であるにもかかわらず、読み取り用にデザインされていないことを示します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>最後に、従来の ASP とは異なり、ASP.NET のコレクションはゼロ (0) から始まるので、すべてのコレクションや配列の最初の要素は 1 ではなく 0 になります。このことは、インデックスにより値を取得する際に覚えておく必要のある重要な点です。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="Files">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">Files</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">HttpFileCollection = Request.Files</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>ASP.NET で新しく導入された Files コレクションは、ユーザーの現在の要求によってアップロードされるすべてのファイルを保持する HttpFileCollection 型のコレクションを返します。このコレクションは、HtmlInputFile サーバーコントロールと組み合わせて使用すると特に役立ちます。HtmlInputFile サーバーコントロールは、HTTP POST 要求を介してファイルをアップロードするために必要な基本機能を提供します。ユーザーが送信ページの HtmlInputFile コントロールごとにファイルを送信する場合は、Files コレクションを使用することによりファイルを取得できます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">HttpFileCollection</span></i><br>&#160;
						  HttpFileCollection 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、2 つの HtmlInputFile サーバーコントロール、およびサーバー側の <span class="literal">&lt;script&gt;</span> ブロックを使用して、ファイルのアップロードおよび処理を行います。この例では、ページの <span class="literal">&lt;form&gt;</span> セクションとそのコントロール、および HtmlInputButton コントロールの onServerClick イベントによって呼び出される UploadBtn_OnClick メソッドが記述された <span class="literal">&lt;script&gt;</span> ブロックの両方を示します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>&lt;!--Place between the &lt;head&gt; and &lt;/head&gt; tags --&gt;
&lt;script runat="server"&gt;
   Sub UploadBtn_Click(Sender as Object, e as EventArgs)
      UploadForm.Visible = False
      If InStr(Request.ContentType, "multipart/form-data") Then
         Dim Counter1 As Integer
         Dim Keys(  ) As String
         Dim Files As HttpFileCollection

         ' Load File collection
         Files = Request.Files
         ' Get names of all files into an array
         Keys = Files.AllKeys
         For Counter1 = 0 To Keys.GetUpperBound(0)
            Message.Text &amp;= "File ID: " &amp; Keys(Counter1) &amp; "&lt;br/&gt;"
            Message.Text &amp;= "File Name/Path: " &amp; _
               Files(Counter1).FileName &amp; "&lt;br/&gt;"
         Next Counter1
      Else
         Message.Text = "Wrong content type!"
      End If
   End Sub
&lt;/script&gt;

&lt;!-- This section resides between the &lt;body&gt; and &lt;/body&gt; tags --&gt;
&lt;form id="UploadForm" enctype="multipart/form-data" runat="server"&gt;
   Select File To Upload to Server:
   &lt;br/&gt;
   &lt;%-- MyFile and MyFile2 are HtmlInputFile controls --%&gt;
   &lt;%-- note the runat attribute --%&gt;
   &lt;input id="MyFile" type="file" runat="server"&gt;
   &lt;br/&gt;
   &lt;input id="MyFile2" type="file" runat="server"&gt;
   &lt;br/&gt;
   &lt;input id="Submit1" type="submit" value="Upload!"
      onserverclick="UploadBtn_Click" runat="server" &gt;
&lt;/form&gt;
&lt;asp:label id="Message" runat="server"/&gt;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>従来の ASP では、ファイルのアップロードは面倒な作業でした。通常は、受信 ASP ページで使用するサードパーティのアップロードコントロールを探して購入し、アップロードしたファイルの解析および保存を行う必要がありました。Files コレクションにより、サードパーティのコントロールを探し、その使用方法を調べて、ファイルをアップロードする必要がなくなりました。このことは、コントロールのデベロッパーにとっては残念なことですが、新しいサーバーコントロールを作成することによってその損失を十分に補うであろうと思われます。一方、ASP.NET のデベロッパーにとっては喜ばしいことです。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>Files コレクションが正しくファイルをアップロードするために、次の 2 つの重要な点を留意してください。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ol><li><span class="literal">runat="server"</span> 属性が設定されていないクライアントサイドの HTML フォームを使用している場合は、フォームの <span class="literal">method</span> 属性を <span class="literal">POST</span> に設定します。
</li><li>フォームの <span class="literal">enctype</span> 属性を <span class="literal">multipart/form-data</span> に設定します。
</li></ol>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>アップロードは、両方の手順を行った場合のみ成功します。コード例では、ファイルの取得を試みる前に、着信要求が multipart/form-data かどうかを確認しています。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>ファイルをアップロードするために HtmlInputFile コントロールを使用する必要はありません。ファイルは、Files コレクションを介して取得できます。送信ページで POST メソッドと multipart/form-data <span class="literal">enctype</span> 属性を使用している限り、標準の HTML ファイルの入力タグを使用できます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>&lt;input type="file" id="myFile" name="myFile"&gt;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p><span class="literal">name</span> 属性を使用していることに注意してください。この属性を指定しないと、Files コレクションはそのコントロール用にアップロードしたファイルを保持しません。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="Form">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">Form</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">NameValueCollection = Request.Form</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>Form コレクションは、HTTP POST 要求と共に渡されたすべてのフォームフィールドを保持する <span class="literal">NameValueCollection</span> クラスのインスタンスを返します。このコレクションは、HTTP 要求の Content-Type が <span class="literal">application/x-www-form-urlencoded</span> または <span class="literal">multipart/form-data</span> のいずれかの場合のみデータを保持します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
						<tr>
							<td><p>データの送信に使用した HTTP メソッドに応じてデータを取得する方法は 2 つあり、Form コレクションはそのうちの 1 つです。Form コレクションは、<span class="literal">method</span> 属性が <span class="literal">POST</span> に設定された HTML フォームによって送信されたデータを取得します。一方、QueryString コレクションは、<span class="literal">method</span> 属性が <span class="literal">GET</span> に設定された HTML フォームによって送信されたデータを取得します。QueryString コレクションについては、本項の後の部分で説明します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">NameValueCollection</span></i><br>&#160;
						  NameValueCollection 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、ASP.NET により、単一のページから HTTP POST 経由で値を送信し、その値を取得してユーザーに表示する方法を示します。この例では、<span class="literal">Page</span> クラスの IsPostBack プロパティを使用して、送信されているフォームの結果による要求かどうかを判断します。要求がポストバックではない場合は、ユーザーが値を入力できるように、フォームフィールドが表示されます。要求がポストバックの場合は、ページにより Form コレクションが取得され、ブラウザに各フィールドの名前と値が表示されます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   If IsPostBack Then
      Form1.Visible = False
      If Request.HttpMethod = "POST" Then
         Dim Counter1 As Integer
         Dim Keys(  ) As String
         Dim FormElements As NameValueCollection

         ' Get Form keys/elements
         FormElements=Request.Form
         ' Get names of form fields into array
         Keys = FormElements.AllKeys
         For Counter1 = 0 To Keys.GetUpperBound(0)
            Message.Text &amp;= "Form " &amp; Counter1 &amp; " name: " &amp; _
               Keys(Counter1) &amp; "&lt;br/&gt;"
            Message.Text &amp;= "Form " &amp; Counter1 &amp; " value: " &amp; _
               FormElements(Counter1) &amp; "&lt;br/&gt;"
         Next Counter1
      End If
   Else
      Form1.Visible = True
   End If
End Sub

&lt;!-- This section resides between the &lt;body&gt; and &lt;/body&gt; tags --&gt;
&lt;form id="Form1" runat="server"&gt;
   First Name:
   &lt;br/&gt;
   &lt;asp:Textbox id="txtFName" runat="server"/&gt;
   &lt;br/&gt;
   Last Name:
   &lt;br/&gt;
   &lt;asp:Textbox id="txtLName" runat="server"/&gt;
   &lt;br/&gt;
   &lt;asp:Button id="Submit" Text="Submit" runat="server"/&gt;
&lt;/form&gt;
&lt;asp:label id="Message" runat="server"/&gt;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>Form コレクションは本章の 16.3 項で説明しているプロパティとメソッドを公開し、さらに次のメソッドを追加しています。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="emphasis">Get(</span><span class="replaceable">Index</span>|<span class="replaceable">Key</span><span class="emphasis">)</span></i><br>&#160;
						  NameValueCollection 内の指定した項目のコンテンツをコンマで区切った文字列として返します。
</li><li><i><span class="emphasis">GetValues(</span><span class="replaceable">Index</span>|<span class="replaceable">Key</span><span class="emphasis">)</span></i><br>&#160;
						  NameValueCollection 内の指定した項目のコンテンツを文字列配列として返します。
</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="Headers">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">Headers</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">NameValueCollection = Request.Headers</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>Headers コレクションは、現在の要求と共に送信されたすべての HTTP ヘッダを保持する <span class="literal">NameValueCollection</span> クラスのインスタンスを返します。このコレクションは、<span class="literal">ALL_HTTP</span> キーを指定して Request.ServerVariables コレクションを呼び出すことによって返される情報と同じ情報を提供します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">NameValueCollection</span></i><br>&#160;
						  NameValueCollection 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、最初に ServerVariables("ALL_HTTP") メソッドを使用し、次に Headers コレクションを使用することによって、要求と共に渡された HTTP ヘッダをブラウザに書き込みます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim AllHttp As String
   ' Get a String with all the HTTP headers
   AllHttp = Request.ServerVariables("ALL_HTTP")
   ' Use Replace to format the String
   AllHttp = Replace(AllHttp, "HTTP", "&lt;br/&gt;HTTP"
   Message.Text &amp;= AllHttp &amp; "&lt;br/&gt;&lt;br/&gt;"

   Dim Counter1, Counter2 As Integer
   Dim Keys(), subKeys(  ) As String
   Dim HeaderColl As NameValueCollection

   ' Load Headers into NameValueCollection
   HeaderColl=Request.Headers
   ' Get keys into an array
   Keys = HeaderColl.AllKeys
   For Counter1 = 0 To Keys.GetUpperBound(0)
      Message.Text &amp;= "Key: " &amp; Keys(Counter1) &amp; "&lt;br/&gt;"
      ' Get all values under this key
      subKeys = HeaderColl.GetValues(Counter1)
      For Counter2 = 0 To subKeys.GetUpperBound(0)
         Message.Text &amp;= "Value " &amp; CStr(Counter2) &amp; ": " &amp; _
            subKeys(Counter2) &amp; "&lt;br/&gt;"
      Next Counter2
   Next Counter1
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>Headers コレクションは、現在の要求の一部として送信された HTTP ヘッダのみを返し、一方、ServerVariables コレクションは、値が渡されたかどうかにかかわらず、各 HTTP ヘッダのキーを保持します。ServerVariables コレクションについては本項の後の部分で説明します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>HTTP ヘッダをファイルに書き込むか、またはブラウザに表示するだけであれば、ServerVariables コレクションの方が簡単に使用できる場合があります。名前によって特定の HTTP ヘッダにアクセスする、またはコレクション全体をループする必要がある場合は、Headers コレクションが適しています。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="Params">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">Params</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">NameValueCollection = Request.Params</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>Params コレクションは、QueryString、Form、ServerVariables、および Cookies の各コレクションの「キー/値」のペアを保持する <span class="literal">NameValueCollection</span> クラスのインスタンスを返します。Params コレクションを使用して、これらのコレクションをすべてファイルやブラウザにダンプできます。また、アプリケーションのトラブルシューティングを行うことができます。さらに、アプリケーションに渡されるフォーム値が GET 経由 (QueryString コレクション) または POST 経由 (Form コレクション) のいずれの経由であるかにかかわらず、そのフォーム値をトラックできます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">NameValueCollection</span></i><br>&#160;
						  NameValueCollection 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、Params コレクションに含まれるキーと値をブラウザに書き込みます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim Counter1, Counter2 As Integer
   Dim Keys(), subKeys(  ) As String
   Dim ParamColl As NameValueCollection

   ' Load Params into NameValueCollection
   ParamColl=Request.Params
   ' Get keys into an array
   Keys = ParamColl.AllKeys
   For Counter1 = 0 To Keys.GetUpperBound(0)
      Message.Text &amp;= "Key: " &amp; Keys(Counter1) &amp; "&lt;br/&gt;"
      ' Get all values under this key
      subKeys = ParamColl.GetValues(Counter1)
      For Counter2 = 0 To subKeys.GetUpperBound(0)
         Message.Text &amp;= "Value " &amp; CStr(Counter2) &amp; ": " &amp; _
            subKeys(Counter2) &amp; "&lt;br/&gt;"
      Next Counter2
      Message.Text &amp;= "&lt;br/&gt;"
   Next Counter1
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>次のコードを使用して、サンプルページにポストすることができます。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>&lt;html&gt;
   &lt;head&gt;
      &lt;title&gt;Submit a named parameter via POST&lt;/title&gt;
   &lt;/head&gt;
&lt;body&gt;
   &lt;form id="form1" action="Params.aspx" method="POST"&gt;
      &lt;h3&gt;Name:&lt;/h3&gt;
      &lt;input type="text" name="name"&gt;
      &lt;input type="submit"&gt;
   &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>コレクションは、次の順序で列挙されます。</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ol><li>QueryString</li><li>Form</li><li>Cookies</li><li>ServerVariables</li></ol>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>Form コレクションと QueryString コレクションの両方に値を設定する (POST メソッドを使用して、フォームの <span class="literal">action</span> 属性用にクエリー文字列の「名前/値」のペアを URL に追加するなど) ことができますが、通常は両方ではなく、いずれか一方を確認します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="QueryString">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">QueryString</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">NameValueCollection = Request.QueryString</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>QueryString コレクションは、クエリー文字列の一部として渡されたすべてのキーと値を保持する <span class="literal">NameValueCollection</span> クラスのインスタンスを返します。通常、キーと値は POST メソッドではなく、GET メソッドを使用する HTML フォームを送信することにより渡されます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">NameValueCollection</span></i><br>&#160;
						  NameValueCollection 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、QueryString コレクションのコンテンツをブラウザに書き込みます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim Counter1, Counter2 As Integer
   Dim Keys(), subKeys(  ) As String
   Dim QSColl As NameValueCollection

   ' Load QS into NameValueCollection
   QSColl=Request.QueryString
   ' Get keys into an array
   Keys = QSColl.AllKeys
   For Counter1 = 0 To Keys.GetUpperBound(0)
     Message.Text &amp;= "Key: " &amp; Keys(Counter1) &amp; "&lt;br/&gt;"
     subKeys = QSCol1.GetValues(Counter1) 'Get all values under this key
     For Counter2 = 0 To subKeys.GetUpperBound(0)
        Message.Text &amp;= "Value " &amp; CStr(Counter2) &amp; ": " &amp; _
           subKeys(Counter2) &amp; "&lt;br/&gt;"
     Next Counter2
     Message.Text &amp;= "&lt;br/&gt;"
  Next Counter1
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>次のコードを使用して､サンプルページにポストできます。ここでは、Form の method 属性が GET に設定されています。これは、クエリー文字列の一部として送信されるフォーム値に必要です。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>&lt;html&gt;
   &lt;head&gt;
      &lt;title&gt;Submit a named parameter via POST&lt;/title&gt;
   &lt;/head&gt;
&lt;body&gt;
   &lt;form id="form1" action="QueryString.aspx" method="GET"&gt;
      &lt;h3&gt;Name:&lt;/h3&gt;
      &lt;input type="text" name="name"&gt;
      &lt;input type="submit"&gt;
   &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>QueryString コレクションの Form コレクションに対する利点の 1 つは、コレクションを使用するために、ユーザーが必ずしもフォームを送信する必要がないことです。クエリー文字列の値は URL に追加されるので、クエリー文字列をページ内のリンクに静的に追加することや、クエリー文字列値が追加されたアンカータグを動的に作成することは比較的簡単です。実際、多くのオンラインストアがこの方法を使用して、商品を表示するようにデザインされたページへのリンクに商品 ID を付加して渡すことでカタログページを運用しています。商品を表示するページは、QueryString コレクションを使用して商品 ID を取得できます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>クエリー文字列の値はプレーンテキストとして URL に付加して渡されるので、POST 操作の結果として渡される値に比べて改ざんに対する脆弱性が高まります。重要なデータまたは改ざんされるとアプリケーションで問題が生じる可能性のあるデータを渡す場合は、そのデータをクエリー文字列に追加する前に値を暗号化するか、または別の方法で値を渡すことを検討する必要があります。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p>クエリー文字列の処理で使用される、&amp;、?、%、+ などの特定の文字は、「キー/値」のペアで使用される場合、およびクエリー文字列内での特殊文字として機能する場合との間での混乱を避けるために、エンコードする必要があります。次の表に、それぞれの特殊文字のエンコードを示します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<table border="1"><tbody><tr><th>文字</th><th>エンコード</th></tr>
								<tr><td>&amp;</td><td>%26</td>
								</tr>
								<tr><td>?</td><td>%3f</td>
								</tr>
								<tr><td>%</td><td>%25</td>
								</tr>
								<tr><td>+</td><td>%2b</td>
								</tr>
								<tr><td>スペース</td><td>%20</td>
								</tr>
							</tbody></table>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><p><span class="literal">HttpServerUtility</span> クラスが提供する UrlEncode メソッドを使用すると、メソッドに渡された文字列内のすべての特殊文字が適切なエンコードに自動的に置き換えられるので、これらの値を覚えておく必要はありません。HttpServerUtility クラスについては、第 18 章で説明します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="ServerVariables">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">ServerVariables</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">NameValueCollection  = Request.ServerVariables</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description" />
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">NameValueCollection</span></i><br>&#160;
						  NameValueCollection 型のオブジェクト変数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、コレクションに関する前述の例と同様に、ServerVariables コレクションのコンテンツをブラウザに書き込みます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim Counter1, Counter2 As Integer
   Dim Keys(), subKeys(  ) As String
   Dim SVarsColl As NameValueCollection

   ' Load ServerVariables into NameValueCollection
   SVarsColl=Request.ServerVariables
   ' Get keys into an array
   Keys = SVarsColl.AllKeys
   For Counter1 = 0 To Keys.GetUpperBound(0)
      Message.Text &amp;= "Key: " &amp; Keys(Counter1) &amp; "&lt;br/&gt;"
      subKeys = SVarsColl.GetValues(Counter1)
      ' Get all values under this key
      For Counter2 = 0 To subKeys.GetUpperBound(0)
         Message.Text &amp;= "Value " &amp; CStr(Counter2) &amp; ": " &amp; _
            subKeys(Counter2) &amp; "&lt;br/&gt;"
      Next Counter2
      Message.Text &amp;= "&lt;br/&gt;"
   Next Counter1
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>キーがわかっていれば、Keys 全体をループしてすべての値を取得するだけでなく、個別の値にアクセスできます。次の一覧に、ServerVariable コレクションで利用可能なキーを示します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="literal">ALL_HTTP</span></i><br>&#160;
						  <span class="literal">HTTP_</span><span class="replaceable">headername</span> という形式の各ヘッダ名と共にすべての HTTP ヘッダを保持する文字列を返します。ここで、<span class="replaceable">headername</span> はすべてが大文字の HTTP ヘッダの名前です。
</li><li><i><span class="literal">ALL_RAW</span></i><br>&#160;
						  ALL_HTTP と同じ情報を提供しますが、ヘッダ名はすべて大文字にならず、<span class="literal">HTTP_</span> という接頭辞も付きません。
</li><li><i><span class="literal">APPL_MD_PATH</span></i><br>&#160;
						  IIS メタベース内のアプリケーションのパスを返します。</li><li><i><span class="literal">APPL_PHYSICAL_PATH</span></i><br>&#160;
						  <span class="literal">APPL_MD_PATH</span> に対応する物理パスを返します。
</li><li><i><span class="literal">AUTH_TYPE</span></i><br>&#160;
						  保護されたコンテンツに対するアクセスの検証に使用する認証手法を返します。
</li><li><i><span class="literal">AUTH_USER</span></i><br>&#160;
						  認証済みのユーザーのユーザー名をそのままの形式で返します。</li><li><i><span class="literal">AUTH_PASSWORD</span></i><br>&#160;
						  基本認証が使用されたと想定して、ブラウザの認証ダイアログで入力されたパスワードを返します。
</li><li><i><span class="literal">LOGON_USER</span></i><br>&#160;
						  現在のユーザーがログインしている Windows アカウントの名前を返します。
</li><li><i><span class="literal">REMOTE_USER</span></i><br>&#160;
						  認証のフィルタリングが行われる前に、ブラウザが送信したユーザー名の文字列を返します。
</li><li><i><span class="literal">CERT_COOKIE</span></i><br>&#160;
						  クライアント証明書の一意の文字列識別子を返します。</li><li><i><span class="literal">CERT_FLAGS</span></i><br>&#160;
						  証明書が存在するかどうか (ビット 0)、およびクライアント証明書の証明機関がサーバーで認証済み証明機関の一覧に存在するかどうか (ビット 1) を表すビットフラグを返します。
</li><li><i><span class="literal">CERT_ISSUER</span></i><br>&#160;
						  クライアント証明書の発行者を返します。</li><li><i><span class="literal">CERT_KEYSIZE</span></i><br>&#160;
						  40、128 などの SSL キーのビット数を返します。</li><li><i><span class="literal">CERT_SECRETKEYSIZE</span></i><br>&#160;
						  サーバーの秘密キーのビット数を返します。
</li><li><i><span class="literal">CERT_SERIALNUMBER</span></i><br>&#160;
						  クライアント証明書のシリアル番号を返します。</li><li><i><span class="literal">CERT_SERVER_ISSUER</span></i><br>&#160;
						  サーバー証明書の発行者を返します。</li><li><i><span class="literal">CERT_SERVER_SUBJECT</span></i><br>&#160;
						  サーバー証明書のサブジェクトフィールドを返します。</li><li><i><span class="literal">CERT_SUBJECT</span></i><br>&#160;
						  クライアント証明書のサブジェクトフィールドを返します。</li><li><i><span class="literal">CONTENT_LENGTH</span></i><br>&#160;
						  HTTP 要求の本文のコンテンツの長さを返します。</li><li><i><span class="literal">CONTENT_TYPE</span></i><br>&#160;
						  HTTP 要求のコンテンツの MIME タイプを返します。</li><li><i><span class="literal">GATEWAY_INTERFACE</span></i><br>&#160;
						  サーバーが使用する CGI 仕様のリビジョン番号を返します。
</li><li><i><span class="literal">HTTPS</span></i><br>&#160;
						  要求が Secure Socket Layer (HTTPS) 接続経由で行われたかどうかによって、<span class="literal">on</span> または <span class="literal">off</span> のいずれかを返します。
</li><li><i><span class="literal">HTTPS_KEYSIZE</span></i><br>&#160;
						  SSL キーのサイズをビット単位で返します。</li><li><i><span class="literal">HTTPS_SECRETKEYSIZE</span></i><br>&#160;
						  サーバーの秘密キーのビット数を返します。
</li><li><i><span class="literal">HTTPS_SERVER_ISSUER</span></i><br>&#160;
						  サーバー証明書の発行者を返します。</li><li><i><span class="literal">HTTPS_SERVER_SUBJECT</span></i><br>&#160;
						  サーバー証明書のサブジェクトフィールドを返します。</li><li><i><span class="literal">INSTANCE_ID</span></i><br>&#160;
						  要求に関連付けられた IIS インスタンスの ID を返します。IIS のインスタンスが複数実行されていない限り、この値は常に 1 になります。
</li><li><i><span class="literal">INSTANCE_META_PATH</span></i><br>&#160;
						  現在の要求に応答する IIS インスタンスのメタベースパスを返します。
</li><li><i><span class="literal">LOCAL_ADDR</span></i><br>&#160;
						  要求を受け取ったサーバーのアドレスを返します。複数の NIC および IP アドレスを持つサーバーで、要求を受け取ったアドレスを判断する場合に役立ちます。
</li><li><i><span class="literal">PATH_INFO</span></i><br>&#160;
						  要求と共に渡されたすべての詳細パス情報を返します。詳細については、本章の前の部分で説明した PathInfo プロパティを参照してください。
</li><li><i><span class="literal">PATH_TRANSLATED</span></i><br>&#160;
						  要求の仮想パスに対応する物理パスを返します。
</li><li><i><span class="literal">QUERY_STRING</span></i><br>&#160;
						  要求と共に渡された未加工のクエリー文字列が存在する場合は、その文字列を返します。</li><li><i><span class="literal">REMOTE_ADDR</span></i><br>&#160;
						  要求を行っているマシンの IP アドレスを返します。</li><li><i><span class="literal">REMOTE_HOST</span></i><br>&#160;
						  利用可能な場合は、要求を行っているマシンの DNS 名を返します。そうでない場合は、IP アドレスを返します。
</li><li><i><span class="literal">REQUEST_METHOD</span></i><br>&#160;
						  要求で使用されている GET、POST などの HTTP 要求メソッドを返します。</li><li><i><span class="literal">SCRIPT_NAME</span></i><br>&#160;
						  実行中のページへの仮想パスを返します。</li><li><i><span class="literal">SERVER_NAME</span></i><br>&#160;
						  サーバーの名前、DNS 名、または IP アドレスを返します。</li><li><i><span class="literal">SERVER_PORT</span></i><br>&#160;
						  要求を受け取ったポートの番号を返します。</li><li><i><span class="literal">SERVER_PORT_SECURE</span></i><br>&#160;
						  セキュリティで保護されたポート (1) または保護されていないポート (0) のどちらで要求を受け取ったかに応じて、0 または 1 のいずれかを含む文字列を返します。
</li><li><i><span class="literal">SERVER_PROTOCOL</span></i><br>&#160;
						  クライアント要求の処理に使用されるプロトコルの名前とバージョンを返します。IE 5.5 と IIS 5 の場合、名前とバージョンは "HTTP/1.1" になります。
</li><li><i><span class="literal">SERVER_SOFTWARE</span></i><br>&#160;
						  Web サーバーソフトウェアの名前とバージョンを返します。</li><li><i><span class="literal">URL</span></i><br>&#160;
						  要求の基本 URLを返します。このデータはドメイン名の後のすべての情報に該当します。
</li><li><i><span class="literal">HTTP_CONNECTION</span></i><br>&#160;
						  確立された接続のタイプを返します。</li><li><i><span class="literal">HTTP_ACCEPT</span></i><br>&#160;
						  HTTP Accept ヘッダの値を返します。</li><li><i><span class="literal">HTTP_ACCEPT_ENCODING</span></i><br>&#160;
						  HTTP Accept-Encoding ヘッダの値を返します。</li><li><i><span class="literal">HTTP_ACCEPT_LANGUAGE</span></i><br>&#160;
						  HTTP Accept-Language ヘッダの値を返します。</li><li><i><span class="literal">HTTP_HOST</span></i><br>&#160;
						  HTTP Host ヘッダの値を返します。</li><li><i><span class="literal">HTTP_USER_AGENT</span></i><br>&#160;
						  HTTP User-Agent ヘッダの値を返します。
</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="BinaryRead">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">BinaryRead</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">byteArray = Request.BinaryRead(byteCount)</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p><span class="replaceable">byteCount</span> パラメータで指定されたバイト数が格納されたバイト配列  を返します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">byteArray</span></i><br>&#160;
						  メソッドから指定したバイト数を受け取るバイト型の配列変数です。
</li><li><i><span class="replaceable">byteCount</span></i><br>&#160;
						  返されるバイト数を指定する整数です。</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このメソッドによって、従来の ASP アプリケーションとの下位互換性が実現されます。新規の開発では、Files コレクションなどの別の方法を使用して、BinaryRead メソッドを使用した場合と同じ結果を実現することをお勧めします。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="MapPath">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">MapPath</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">stringvar = Request.MapPath(virtualPath) <br>
					stringvar = Request.MapPath(virtualPath, _ baseVirtualDirectory, allowCrossMapping)
</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>従来の ASP では Server オブジェクトが公開していた MapPath メソッドを使用して、指定された仮想パスに対するサーバー上の物理パスを取得できます。ASP.NET では、MapPath メソッドがオーバーロードされ、前述のコードで示したように、2 つの異なるパラメータセットを使用して呼び出すことができます。従来の ASP と同じ最初の形式では、単純に、マップされた仮想パスを保持する文字列で渡します。2 番目の形式では、相対パスを解決するための基本ディレクトリを指定する <span class="replaceable">baseVirtualDirectory</span> パラメータ、および他のアプリケーションに属する仮想パスをマップできる <span class="replaceable">allowCrossMapping</span> パラメータが追加されています。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">stringvar</span></i><br>&#160;
						  マップされた物理パスを受け取る文字列変数です。</li><li><i><span class="replaceable">virtualPath</span></i><br>&#160;
						  マップする仮想パスを保持する文字列パラメータです。</li><li><i><span class="replaceable">baseVirtualDirectory</span></i><br>&#160;
						  相対パスの解決に使用する基本パスを保持する文字列パラメータです。
</li><li><i><span class="replaceable">allowCrossMapping</span></i><br>&#160;
						  パスがアプリケーション間でマップされる可能性の有無を示すブール値パラメータです。
</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、.NET Framework SDK サンプルの <span class="emphasis">/QuickStart</span> ディレクトリのパスをマップし、その結果をブラウザに書き込みます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Dim VirPath, PhysPath, BasePath As String
   Dim BoolCross As Boolean = True

   VirPath = "/QuickStart"
   BasePath = ""

   Message.Text = Request.MapPath(VirPath, BasePath, BoolCross)
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>前述の例では、<span class="replaceable">BoolCross</span> 変数を <span class="literal">False</span> に設定し、QuickStart アプリケーションの外部からサンプルコードを呼び出した場合は、HttpException がスローされます。これは、アプリケーション間でパスをマップするためには、このパラメータを <span class="literal">True</span> に設定する必要があるからです。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div><div id="SaveAs">
			<table width="100%" cellspacing="0" cellpadding="0" border="0" class="main"><tr>							<td valign="top" class="name">SaveAs</td>
					<td valign="top" nowrap class="compatibility" />
				</tr>
				<tr>
					<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">Request.SaveAs(filename, includeHeaders)
</p>
					</td><td valign="top" nowrap class="requirements"> &#160;</td>
				</tr>
				<tr><td colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<tr>
							<td><p>要求を保存するパスとファイル名として <span class="replaceable">filename</span> パラメータを使用し、現在の HTTP 要求をディスクに保存します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td>
						<ul><li><i><span class="replaceable">filename</span></i><br>&#160;
						  要求を保存するパスとファイル名を保持する文字列パラメータです。
</li><li><i><span class="replaceable">includeHeaders</span></i><br>&#160;
						  HTTP ヘッダ情報を要求の一部として保存するかどうかを示すブール値パラメータです。これが POST 要求、または要求の本文を持つその他のタイプの要求でない限り、このパラメータを <span class="literal">False</span> に設定すると情報は保存されません。
</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr>
					<td><p>次の例では、比較のために HTTP 要求ヘッダをブラウザに書き込み、現在の要求をヘッダ情報なしの場合とヘッダ情報付きの場合の両方で保存します。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td><span class="programlisting"><pre>Sub Page_Load(  )
   Message.Text = Request.Headers

   ' Save HTTP Request and Headers to a file
   Request.SaveAs((Request.PhysicalApplicationPath &amp; _
      "HTTPRequest.txt"), True)
   ' Save HTTP Request to a file
   Request.SaveAs((Request.PhysicalApplicationPath &amp; _
      "HTTPRequest_NoHeaders.txt"), False)
End Sub</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メモ</span></td>
				</tr>
				<tr>
					<td><p>このメソッドにより、特定の要求で送信されるすべての情報を確認できるため、デバッグに非常に役立ちます。特に、POST 要求で役立ちます。
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&#160;</td>
				</tr>
			</table>
		</div>
	</body></html>