2010-12-14 9 views
4

簡単な質問ですが、自分で明確にする必要があります。リクエストオブジェクトにアクセスすることができるコレクションの面ではあります:asp.net/htmlのフォームコレクションとは何ですか?

Cookies: (whats in a text file in the browser) 
Querystring: (whats passed in the url like [key=value&key=value etc]) 
Server Variables: ? 
Form Variables: ? 

を持つものは?私はhttpパケット/ htmlがどこに置かれているのか本当に分かりません。私はwiresharkを使ってキャプチャを行いました:

POST /Security/HelixSessionAuth.aspx HTTP/1.0 
Content-Type: application/x-www-form-urlencoded 
Content-Length: 391 

ClientIP=192.168.20.31 
Url=%2Fflash%2F56553550%5Fhi%2Emp4 
Log=SESSIONSTART%20%5B13%2FDec%2F2010%3A16%3A31%3A23%20%2B0000%5D%20%20flash%2F56553550%5Fhi%2Emp4%200%20192%2E168%2E20%2E31%203%20%5B13%2FDec%2F2010%3A16%3A31%3A23%20%2B0000%5D%200%200%200%20%5B0%20No%20Error%5D%20%5B0%20No%20Error%5D%20%5Brtmp%3A%2F%2Fhelix%2Epete%2Evideolibraryserver%2Ecom%2Fflash%2F56553550%5Fhi%2Emp4%5D%0A 
HTTP/1.1 404 Not Found 
Content-Type: text/html; charset=us-ascii 
Server: Microsoft-HTTPAPI/2.0 
Date: Mon, 13 Dec 2010 16:31:23 GMT 
Connection: close 
Content-Length: 315 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> 
<HTML><HEAD><TITLE>Not Found</TITLE> 
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD> 
<BODY><h2>Not Found</h2> 
<hr><p>HTTP Error 404. The requested resource is not found.</p> 
</BODY></HTML> 

ここで、これらの情報は上記のフィードに含まれていますか?

答えて

2

フォームコレクションは、POSTメソッドを介してアクションページに渡されるページのコントロールのリストです。 QuerystringはGET、POSTはFormコレクションに項目を追加します。あなたはPOST中にコントロールの名前を知っている場合は、使用してアクションページでその値にアクセスすることができます.NET Webフォームで

Request.Form("myControl") 

を.NETがに特化したClientIDを注入するので、これはもう少し複雑ですコードの背後にある実際のコントロールのIDを保持します。あなたのツールについて

https://msdn.microsoft.com/en-us/library/ms524602(v=vs.90).aspx

+0

この回答のリンクは壊れています:( –

+0

@ ArminderDahul:いつでもすぐに非難するべきではないmsdnリンクで修正されました。 –

2

これはWiresharkですが、私はちょっと怪しいです。MSDN documentation for HttpRequestで始めることをお勧めします。これは、フォームとサーバーのコレクションが何であるかを理解するのに役立ちます。そして、実際のデータパケットで探しているものがわかります。

+0

@ラザロ:しかし、ナッツはチャンスを立てていませんか? –

+0

@Joeel Etherton:それは最良のアナロジーではありませんでしたが、私はより良いものを考えることができませんでした;)それはそれ自体が大惨事でした。 「/Security/HelixSessionAuth.aspx」のようなURLに関連するパケットを傍受し、データがどこに渡されるかを探すと、私は少し気になるので、私は答えではなくアドバイスを受けています。 – Lazarus

+0

それは問題のナット、比喩的な問題、またはキーボードに付いているものにも依存します) – Lazarus

1

まず:

サーバー収集はここで見つけることができますなどの完全なリストクライアント、サーバー、接続、ブラウザに関する情報を、特定の一般的なサーバー変数のコレクションです。 WireSharkは、HTTPコンセプトを学習する必要のない低レベルのパケット分析ツールです。代わりにFiddlerを使用してください。

ServerVariables:

これは、ASPの古典から古いオブジェクトです。現在、オブジェクトには多くの別名があります。たとえば、Request.UserHostAddressRequest.ServerVariables("remote_addr")の別名です。 HeadersCookiesSessionオブジェクト、...はこのオブジェクトから利用できます。このオブジェクトには後方互換性があります。

フォーム変数:

すべてのコントロールASP.NETには、ASP.NETによってIDで追跡され、その状態がViewState隠しフィールド内に保持されます。ビューステートは、ASP.NET WebページがWebフォームの状態の変更をPostBacksに保持するために使用する手法です。 したがって、PostBack(フォーム投稿、つまりボタンをクリック)の各サーバーで、ASP.NETはフォームオブジェクトとその子(フォーム内のコントロール)をポストデータから再作成します。それはフォームコレクションと呼ばれています。

+0

+ 1 for Fiddler –

関連する問題