Как работает Request.IsAuthenticated? - PullRequest
48 голосов
/ 04 февраля 2010

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

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

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

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

Ответы [ 2 ]

58 голосов
/ 06 декабря 2012

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

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

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

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

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

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

HttpRequest.IsAuthenticated будет истинным, когда пользователь делает запрос был аутентифицирован. По сути, это свойство обеспечивает тот же информация как 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.

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

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

8 голосов
/ 04 февраля 2010

Даниэль Кент написал довольно подробный пост здесь (Отрывок)

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

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

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