2009-06-02 3 views

ответ

1

Он размещен на клиенте, если вы используете firebug, в ответ он должен выглядеть примерно так: .ASPXFORMSAUTH = C8390F0E68890DF5C731DB2B .... Проверка подлинности по-прежнему может работать, но все будет установлено в URL-адресе браузера. Достойная документация here

+0

Где в firebug я могу увидеть ответ? – Martijn

+0

Когда вы расширяете элемент в разделе «Сеть», вы должны увидеть вкладку заголовков и вкладку ответов. – Rob

0

Cookies всегда хранятся на стороне клиента.

Браузеры, поддерживающие куки-файлы, обрабатывают HTTP-заголовок Set-Cookie (если разрешены файлы cookie), проанализируйте значение этого заголовка для получения информации о сохранении файла cookie (имя, значение, домен, путь и срок действия) и сохраните значение cookie где-нибудь , Для постоянных файлов cookie (т. Е. Те, у которых установлен значение срока действия) это местоположение обычно находится где-то в файловой системе, но местоположение зависит от браузера. Для файлов сеансов cookie (файлы cookie без значения срока действия, которые живут до тех пор, пока браузер открыт), это, вероятно, структура данных в памяти.

4

На клиенте. Предположительно cookieless поддерживается изменением web.config, но я не добился успеха в его реализации. Если cookieless используется, cookie хранится в URI веб-страницы, например http://MySite.com/MyWebApplication/F(XXXX))/home.aspx.

<forms 
    cookieless="[UseUri|UseCookie|AutoDetect|UseDeviceProfile]" 
</forms> 

forms Element for authentication (ASP.NET Settings Schema) От:

В AJAX с поддержкой веб-сайтов ASP.NET, используйте UseCookies на значение по умолчанию для атрибута Cookieless. Настройки, использующие файлы cookie, закодированные в URL-адресе, не поддерживаются библиотеками клиент-сценариев ASP.NET AJAX.

UseCookies Указывает, что файлы cookie всегда будут использоваться независимо от устройства.

UseUri Указывает, что файлы cookie никогда не будут использоваться.

AutoDetect Указывает, что файлы cookie используются, если профиль устройства поддерживает файлы cookie; в противном случае файлы cookie не используются. Для настольных браузеров, которые, как известно, поддерживают файлы cookie, при попытке использовать куки-файлы будет использоваться механизм зондирования. Если устройство не поддерживает файлы cookie, не будет использоваться механизм зондирования.

UseDeviceProfile Указывает, что файлы cookie используются, если браузер поддерживает файлы cookie; в противном случае файлы cookie не используются. Для устройств, поддерживающих куки-файлы, не предпринимаются попытки определить, включена ли поддержка файлов cookie.

Этот атрибут является новым в .NET Framework версии 2.0.

По умолчанию используется UseDeviceProfile.

Использование cookieless может быть менее безопасным, чем использование печенья. Из Understand How the ASP.NET Cookieless Feature Works:

Один большой вопрос, который является уникальным для Cookieless функции (нет при использовании куки), это уязвимость связана с пользователями отправки URL-адреса для других пользователей (через электронную почту и IM, например).Когда эта функция включена, например, FormsAuthentication, и пользователь отправляет свой (или ее) URL другому пользователю, второй пользователь автоматически войдет на сервер с учетными данными первого пользователя. Одной из мер противодействия является сокращение временного окна, в котором это может произойти, путем сокращения тайм-аута cookie для проверки подлинности форм (как описано ранее в пункте (b)).

0

Чтобы лучше понять это, я настоятельно рекомендую использовать анализатор Http, например, расширение HttpFox для FireFox. Это позволяет вам видеть, какие файлы cookie с аутентификацией встречаются и хранятся.

0

На сервере. Используйте Reflector для поиска в классе FormsAuthentication, и вы можете отслеживать, где инициализируется и настраивается файл cookie.

Reflector - бесплатный инструмент, который «декомпилирует» сборки .NET, позволяя вам видеть более или менее то, что они делают (хотя он не показывает исходный код, а только реконструированную версию на основе ИЛ).

Используя это, вы можете открыть файл

c:\Windows\Microsoft.NET\Framework\<version>\System.Web.dll 

и просмотреть класс FormsAuthentication в пространстве имен System.Web.Security. Там вы можете увидеть, что печенье создан и в частном перегруженном методе

GetAuthCookie(string userName, bool createPersistentCookie, string strCookiePath, bool hexEncodedTicket) 

, который вызывается RedirectFromLoginPage (или публичной версии GetAuthCookie).

Изучая этот файл, вы также можете увидеть, как .NET обрабатывает cookieless аутентификацию.

+0

Некоторые ребята, прежде чем вы говорите, что они хранятся на клиенте, но вы говорите иначе: на сервере. Можете ли вы рассказать мне, что такое рефлектор и как его использовать? – Martijn

+0

Он * хранится * на клиенте (вот и весь файл cookie) и отправляется туда и обратно в каждом запросе и ответе. Вы спрашиваете, где он * установлен *, и он первоначально установлен на сервере. – harpo

Смежные вопросы