C # Где находится набор Authcookie? - PullRequest
2 голосов
/ 02 июня 2009

При использовании FormsAuthentication, где находится Authcookie? На сервере или на клиенте? А когда на клиенте отключены файлы cookie, работает ли FormsAuthentication?

Ответы [ 5 ]

4 голосов
/ 02 июня 2009

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

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

С формы Элемент для аутентификации (схема настроек ASP.NET) :

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

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

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

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

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

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

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

Использование файлов cookie может быть менее безопасным, чем использование файлов cookie. От Понимание того, как работает функция ASP.NET без файлов cookie :

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

2 голосов
/ 02 июня 2009

Он размещен на клиенте, и если вы используете firebug, он должен выглядеть примерно так: Достойная документация здесь

0 голосов
/ 02 июня 2009

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

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

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

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

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

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

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

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

0 голосов
/ 02 июня 2009

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

0 голосов
/ 02 июня 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...