В приложении ASP.NET (2.0) я использую FormsAuthentication.
В методе Global.asax / Application_AuthenticateRequest я проверяю, является ли HttpContext.Current.User нулевым.
Достаточно ли этого, чтобы знать, существует ли файл cookie проверки подлинности форм, срок действия билета не истек, и в целом, что механизм проверки подлинности форм выполнил свою работу по проверке пользователя?
Мне это нужно, потому что у меня есть определенные страницы в этом приложении, которые иногда не требуют аутентификации для доступа (на основании некоторых критериев), и я помещаю их в отдельную директиву «location» в web.config с чтобы исключить их из проверки подлинности «поймать все».
т.е. Я пытаюсь проверить в Application_AuthenticateRequest, нуждается ли защита страницы, к которой получен доступ в этом «местоположении», и, если да, узнать, прошел ли уже аутентификацию пользователя, или мне нужно перенаправить в Logon.
РЕДАКТИРОВАТЬ: Как показывают ответы, скорее всего, я пойду с IsAuthenticated. Чтобы я мог лучше понять это, вот два бонусных вопроса :) (пожалуйста, отредактируйте другие ответы, чтобы добавить их, спасибо):
Можно ли предположить, что если IsAuthenticated имеет значение true, то HttpContext.Current.User наверняка будет содержать имя пользователя для аутентифицированного пользователя?
Как я могу получить "анонимного пользователя" в HttpContext.Current.User, если принудительная аутентификация FormsAuthentication и только несколько страниц исключены с директивой "location"?