Вопрос

Пример описания кода MSDN:Следующий пример кода использует свойство IsAuthenticated, чтобы определить, был ли аутентифицирован текущий запрос.Если он не прошел проверку подлинности, запрос перенаправляется на другую страницу, где пользователи могут ввести свои учетные данные в веб-приложение.Это распространенный метод, используемый на странице по умолчанию для приложения.

Это здорово, но без деталей или чего-то еще...

На что именно он проверяет?Как мне установить для него значение true?

Пройдите лишнюю милю:Где я мог бы найти более подробную документацию по этому поводу?

Это было полезно?

Решение

Благодаря Google я нашел кэшированную версию сообщения, на которое ссылается @keyboardP в его ответ.Я публикую этот ответ / сообщение здесь в качестве ссылки для других, поскольку исходная ссылка не работает (2012-12-06).

Оригинальный вопрос к которому относится приведенный ниже ответ:

У меня есть приложение на основе форм, которое вызывает у меня приступы.Я заметил, что в местоположении, где свойство IsAuthenticated имело значение True, теперь оно стало false и работало не так, как ожидалось.Мне интересно, есть ли у меня недопустимая настройка??

Кто-нибудь может сказать мне, что устанавливает для свойства IsAuthenticated значение True - что определяет вход в систему.

Ответ Дэниела Кента:

Request.IsAuthenticated предназначен не только для аутентификации в формах - он действителен независимо от того, какой тип аутентификации используется (Windows, Passport, Forms или наша собственная пользовательская схема)

HttpRequest.IsAuthenticated будет иметь значение true, когда пользователь, делающий запрос прошел аутентификацию.По сути, это свойство предоставляет ту же самую информацию, что и Context.User.Identity.IsAuthenticated.

В начале запроса, Context.User.Idenity содержит GenericIdentity с нулевым именем пользователя.В IsAuthenticated свойство для этого объекта будет возвращать false итак Request.IsAuthenticated будет false.Когда модуль аутентификации обрабатывает Application_AuthenticateRequest событие и успешно аутентифицирует пользователя, оно заменяет GenericIdentity в Context.User.Identity с новым IIdentity объект, который вернет true от его IsAuthenticated собственность. Request.IsAuthenticated затем вернется true.

В случае аутентификации Forms модуль аутентификации forms использует зашифрованный билет аутентификации, содержащийся в файле cookie аутентификации для аутентификации пользователя.Как только он сделает это, он заменяет GenericIdentity в Context.User.Identity с помощью FormsIdentity объект, который возвращает True из своего IsAuthenticated собственность.

Итак, настройка IsAuthenticated Для true на самом деле это отличается от входа в систему.Как говорит Джефф, вход в систему аутентификации forms происходит, когда генерируется билет аутентификации и отправляется клиенту в виде файла cookie.(RedirectFromLoginPage или SetAuthCookie) О чем мы говорим с IsAuthenticated это аутентификация, которая происходит при каждом запросе страницы.Вход в систему происходит, когда пользователь вводит свои учетные данные и получает выданный билет аутентификация выполняется с каждым запросом.

Другие советы

Там есть довольно подробный пост Дэниела Кента здесь.(Фрагмент)

Запрос.IsAuthenticated - это не только проверка подлинности форм - это допустимо независимо от того, какой тип используется проверка подлинности (Windows, Паспорт, формы или наша собственная пользовательская схема)

HttpRequest.IsAuthenticated будет иметь значение true, когда пользователь, делающий запрос прошел аутентификацию.По сути, это свойство предоставляет ту же информацию, что и Context.User.Identity.Проходит проверку подлинности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top