При использовании FormsAuthentication, где находится Authcookie? На сервере или на клиенте? И когда у клиента отключены файлы cookie, работает ли FormsAuthentication?C# Где установлен комплект Authcookie?
ответ
Он размещен на клиенте, если вы используете firebug, в ответ он должен выглядеть примерно так: .ASPXFORMSAUTH = C8390F0E68890DF5C731DB2B .... Проверка подлинности по-прежнему может работать, но все будет установлено в URL-адресе браузера. Достойная документация here
Cookies всегда хранятся на стороне клиента.
Браузеры, поддерживающие куки-файлы, обрабатывают HTTP-заголовок Set-Cookie
(если разрешены файлы cookie), проанализируйте значение этого заголовка для получения информации о сохранении файла cookie (имя, значение, домен, путь и срок действия) и сохраните значение cookie где-нибудь , Для постоянных файлов cookie (т. Е. Те, у которых установлен значение срока действия) это местоположение обычно находится где-то в файловой системе, но местоположение зависит от браузера. Для файлов сеансов cookie (файлы cookie без значения срока действия, которые живут до тех пор, пока браузер открыт), это, вероятно, структура данных в памяти.
На клиенте. Предположительно 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)).
Чтобы лучше понять это, я настоятельно рекомендую использовать анализатор Http, например, расширение HttpFox для FireFox. Это позволяет вам видеть, какие файлы cookie с аутентификацией встречаются и хранятся.
На сервере. Используйте 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 аутентификацию.
Некоторые ребята, прежде чем вы говорите, что они хранятся на клиенте, но вы говорите иначе: на сервере. Можете ли вы рассказать мне, что такое рефлектор и как его использовать? – Martijn
Он * хранится * на клиенте (вот и весь файл cookie) и отправляется туда и обратно в каждом запросе и ответе. Вы спрашиваете, где он * установлен *, и он первоначально установлен на сервере. – harpo
- 1. AuthCookie установлен, все еще перенаправляется на login.aspx
- 2. комплект не установлен из-за puma
- 3. Стартовый комплект WCF REST не установлен
- 4. комплект радиообмена установлен в окнах телефон 8?
- 5. Постоянный AuthCookie настроен, но перенаправляется на вход
- 6. Найти, где установлен Maven
- 7. authCookie не защищен в global.asax
- 8. Где установлен ConnectEx?
- 9. Где установлен Widget.Material.Light.TextView.ListSeparator?
- 10. XCode: Где установлен GCC?
- 11. Где установлен параметр функции?
- 12. Где установлен источник apache2
- 13. Где установлен Pktextract.exe?
- 14. Где установлен определитель endl
- 15. Где установлен шаблон atSignIn?
- 16. Где был установлен JSBin?
- 17. Где действительно установлен viewRenderer?
- 18. Wordpress, где установлен «admin_url»?
- 19. Где установлен Xcode 4.3.2?
- 20. STS - Где установлен Groovy?
- 21. Где установлен Coq aac_tactics?
- 22. Где я могу скачать комплект Android Eclipse
- 23. Как установить Apache2 :: AuthCookie в Centos 6?
- 24. C# комплект состояние на ContextMenuStrip
- 25. C++ контейнер - комплект и объект
- 26. Cloudant AuthCookie не может быть пустым
- 27. где $ PATH установлен в xcode?
- 28. Где maven установлен (плагин eclipse)
- 29. Python egg: где он установлен?
- 30. где установлен метод scala get()
Где в firebug я могу увидеть ответ? – Martijn
Когда вы расширяете элемент в разделе «Сеть», вы должны увидеть вкладку заголовков и вкладку ответов. – Rob