2010-12-14 3 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 они размещены. Я сделал захват с использованием wirehark:

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, вы можете получить доступ к его значение на странице действий с использованием:

Request.Form("myControl") 

В веб-формах .Net, это немного сложнее, потому что .Net впрыскивает специализированный ClientID для сохранить идентификатор фактического элемента управления в коде позади.

Коллекция сервер представляет собой набор общих серверных переменных, идентифицирующих информацию о клиенте, сервере, подключение, браузер и т.д. полный список можно найти здесь:

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

+0

Ссылка в этом ответе не работает :( –

+0

@ ArminderDahul: Исправлено с ссылкой msdn, которая не должна скоро быть отменена. –

2

Wireshark для этого немного кувалда-к-трещине-гайке, я предлагаю начать с MSDN documentation for HttpRequest. Это должно помочь вам понять, какие коллекции форм и серверов и что они представляют, тогда вы узнаете, что вы ищете в фактическом пакете данных.

+0

@Lazarus: Но ничего себе, что орех не имеет шансов? –

+0

@Joel Etherton: Это была не лучшая аналогия, но я не мог придумать лучшего.) Возможно, это кувалда сама по себе. Кто-то, нюхающий пакеты, относящиеся к URL-адресу, например «/Security/HelixSessionAuth.aspx» и ищущему, куда передаются данные, всегда оставляет меня немного обеспокоенным, поэтому я прибегаю к советам, а не к ответам. – Lazarus

+0

Это также зависит от гайки в вопросе, метафорической проблемы или той, которая прикреплена к клавиатуре;) – Lazarus

1

Сначала о вашем инструменте. WireShark - инструмент анализа пакетов низкого уровня, который вам не нужен для изучения понятий HTTP. Вместо этого используйте Fiddler.

ServerVariables:

Это старый объект из осины классика. Теперь для их объектов существует много псевдонимов. Например, Request.UserHostAddress является псевдонимом для Request.ServerVariables("remote_addr"). Также Headers, Cookies, Session Объекты, ... доступны с этого объекта. Этот объект имеет более обратную совместимость.

Форма переменные:

Все элементы управления в ASP.NET отслеживаются с идентификатором с помощью ASP.NET и их состояние держать в ViewState скрытом поле. view, это метод, используемый веб-страницей ASP.NET для сохранения изменений в состоянии веб-формы через PostBacks. Итак, на каждом PostBack (сообщение формы, т.е. нажмите кнопку). ASP.NET на стороне сервера будет повторно заполнять объект формы и его дочерние элементы (элементы управления внутри формы) из почтовых данных. Это мы называем коллекцией форм.

+0

+ 1 для Fiddler –