Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Столбец поддержки голосовых ASP.NET

Введение

Добро пожаловать в столбец Microsoft ASP.NET Support Voice! Я Nilay B. Shah с группой поддержки разработчиков ASP.NET. Я работаю с ASP.NET поддержкой уже более полутора лет. Проверка подлинности с помощью форм — это действительно классная функция проверки подлинности. В этой статье рассматриваются некоторые проблемы, которые пользователи запутывают с проверкой подлинности на формах, например связь билета проверки подлинности на основе форм и файла cookie проверки подлинности на основе форм и их соответствующих параметров. Я хотел бы поблагодарить Джерри Ормана, технического руководителя для команды поддержки ASP.NET, за его невероятную помощь!

Люди иногда задаются вопросы о проверке подлинности форм "билеты" и "файлы cookie", так как они тесно связаны. Я сталкиваюсь с такими вопросами: Может ли кто-нибудь объяснить разницу между истечением срока действия файла cookie и истечением срока действия билета? По истечении срока действия файла cookie пользователь будет перенаправлен на страницу входа. Что происходит по истечении срока действия билета? Это также приведет к истечению срока действия файла cookie? Что на самом деле обновляетскользящее обновление?

Я сосредоточусь на этих двух аспектах проверки подлинности с помощью форм в этой статье, чтобы ответить на следующие вопросы:

  • Что такое билет проверки подлинности с помощью форм и файл cookie проверки подлинности с помощью форм? Как они связаны?

  • Какова роль билета в проверке подлинности с помощью форм?

  • Как связаны срок действия файлов cookie и срок действия билета?

  • Как работает скользящее истечение срока действия в контексте билета проверки подлинности на основе форм и файла cookie проверки подлинности на основе форм?

  • Где можно задать свойство времени ожидания для файла cookie проверки подлинности на основе форм и билета проверки подлинности на основе форм?

  • Сценарий проблемы. Проверка подлинности на формах может истекть до значения атрибута timeout, заданного в файле конфигурации.

Что такое билет проверки подлинности с помощью форм и файл cookie проверки подлинности с помощью форм? Как они связаны?

Файл cookie проверки подлинности с помощью форм — это не что иное, как контейнер для запроса проверки подлинности с помощью форм. Билет передается в качестве значения файла cookie проверки подлинности форм при каждом запросе и используется проверкой подлинности с помощью форм на сервере для идентификации пользователя, прошедшего проверку подлинности.

Однако если мы решили использовать проверку подлинности на основе файлов без файлов, билет будет передан в URL-адресе в зашифрованном формате. Проверка подлинности на основе форм без файлов cookie используется, так как иногда клиентские браузеры блокируют файлы cookie. Эта функция появилась в Microsoft платформа .NET Framework 2.0.

Дополнительные сведения см. на следующем веб-сайте Microsoft Developer Network (MSDN):

http://msdn2.microsoft.com/en-us/library/system.web.configuration.formsauthenticationconfiguration.cookieless.aspx

Какова роль билета в проверке подлинности с помощью форм?

Запрос проверки подлинности в формах используется для того, чтобы сообщить ASP.NET приложению, кто вы. Таким образом, билет является стандартным блоком безопасности проверки подлинности форм.

Билет шифруется и подписывается с помощью элемента конфигурации <machineKey> файла Machine.config сервера. ASP.NET 2.0 использует decryptionKey и новый атрибут расшифровки элемента <machineKey> для шифрования билетов проверки подлинности на основе форм. Атрибут расшифровки позволяет указать используемый алгоритм шифрования. ASP.NET 1.1 и 1.0 используют шифрование 3DES, которое не настраивается. Изменение значения билета определяется ошибкой расшифровки билета на сервере. В результате пользователь будет перенаправлен на страницу входа.


Если приложение развернуто в веб-ферме, необходимо убедиться, что файлы конфигурации на каждом сервере используют одно и то же значение атрибутов validationKey и decryptionKey в теге> <machineKey, которые используются для хэширования и расшифровки билета соответственно. Это необходимо сделать, так как невозможно гарантировать, какой сервер будет обрабатывать последовательные запросы. Дополнительные сведения о шифровании FormsAuthenticationTicket и рекомендациях по развертыванию веб-фермы см. на следующем веб-сайте MSDN:

http://msdn2.microsoft.com/en-us/library/ms998288.aspx

Билеты проверки подлинности с помощью форм можно создать вручную с помощью класса FormsAuthenticationTicket. Дополнительные сведения см. на следующей странице веб-узла MSDN:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx

Как связаны срок действия файлов cookie и срок действия билета?

В случае непостояния файла cookie, если срок действия билета истек, срок действия файла cookie также истечет, и пользователь будет перенаправлен на страницу входа. С другой стороны, если билет помечен как постоянный, где файл cookie хранится в клиентском окне, браузеры могут использовать тот же файл cookie проверки подлинности для входа на веб-сайт в любое время. Однако мы можем использовать метод FormsAuthentication.SignOut для явного удаления постоянных или непостояных файлов cookie.

Дополнительные сведения о методе FormsAuthentication.SignOut см. на следующем веб-сайте MSDN:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspxПри проверке подлинности с помощью форм без файлов, если браузер закрыт, билет теряется и при следующем запросе будет создан новый билет.

Как работает скользящее истечение срока действия в контексте билета проверки подлинности на основе форм и файла cookie проверки подлинности на основе форм?

Скользящий срок действия работает точно так же!

Рассмотрим пример: если доступ к странице входа осуществляется в 17:00:00:00:00 PM, срок ее действия должен истекать в 17:10 00:00:00, если атрибут времени ожидания равен 10, а атрибуту slidingExpiration присвоено значение TRUE. Теперь, если какая-либо веб-страница снова просматривается в 17:05 00:00:00, время ожидания файлов cookie и билета будет сброшено до 17:15 00:00:00.

Примечание. Если доступ к веб-странице осуществляется до истечения половины срока действия, время окончания срока действия билета не будет сброшено. Например, при повторном доступе к какой-либо веб-странице в 17:04 00:00:00, время ожидания файлов cookie и билета не будет сброшено.

Дополнительные сведения см. на следующем веб-сайте MSDN:

http://msdn2.microsoft.com/en-us/library/1d3t3c61(vs.71).aspx

Где можно задать значение времени ожидания для файла cookie проверки подлинности на основе форм и билета проверки подлинности с помощью форм?

Единственный параметр, который можно задать, находится в файле Web.config или в файле Machine.config в теге> <forms. Это изменение определяет период ожидания проверки подлинности форм в контексте билета или файла cookie, если только билет не создан вручную.


<!-- Атрибуты forms:
name="[имя файла cookie]" — задает имя файла cookie, используемого для проверки подлинности с помощью форм.
loginUrl="[url]" — задает URL-адрес для перенаправления клиента для проверки подлинности.
protection="[All|Нет|Шифрование|Проверка]" — задает режим защиты для данных в файле cookie.
timeout="[minutes]" — задает длительность действия файла cookie (сбрасывается при каждом запросе).
path="/" — задает путь для файла cookie.
requireSSL="[true|false]" — должен ли файл cookie проверки подлинности на основе форм отправляться только по протоколу SSL?
slidingExpiration="[true|false]" — следует ли повторно ввести файл cookie и билет проверки подлинности форм, если срок их действия скоро истекает?
--> Дополнительные сведения см. на следующем веб-сайте MSDN:

http://msdn2.microsoft.com/en-us/library/1d3t3c61.aspxЕсли билет создается вручную с помощью класса FormsAuthenticationTicket, время ожидания можно задать с помощью атрибута Expiration. Это значение переопределяет значение атрибута timeout, указанное в файлах конфигурации.

Дополнительные сведения о членах FormsAuthenticationTicket см. на следующем веб-сайте MSDN:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket_members.aspx

Сценарий проблемы. Проверка подлинности на формах может истекть до значения атрибута timeout, заданного в файле конфигурации.

Если билет проверки подлинности с помощью форм создается вручную, свойство времени ожидания билета переопределяет значение, заданное в файле конфигурации. Таким образом, если это значение меньше значения в файле конфигурации, срок действия билета проверки подлинности форм истечет до значения атрибута timeout файла конфигурации и наоборот. Например, предположим, что <формирует>атрибут времени ожидания в файле Web.config значение 30, а для параметра Срок действия билета — 20 минут. В этом случае срок действия билета на проверку подлинности в формах истекает через 20 минут, и после этого пользователю придется снова войти в систему.

Связанные ссылки

910439 Устранение неполадок с проверкой подлинности с помощью форм
 

301240 Реализация проверки подлинности на основе форм в приложении ASP.NET с помощью C# .NET
 

Я надеюсь, что вы нашли эту информацию полезной для облегчения некоторых путаницы, связанной с ASP.NET формы проверки подлинности билета и файла cookie. Помните, что столбцы Поддержки голосовой связи предназначены для вас.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×