Как проверить, что пользователь «авторизован»?


89

Я использую проверку подлинности с помощью метода ниже в моем приложении ASP.NET

FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);

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

Ответы:


189

Мне удалось найти правильный. Это ниже.

bool val1 = System.Web.HttpContext.Current.User.Identity.IsAuthenticated

РЕДАКТИРОВАТЬ

Авторство этого редактирования принадлежит @Gianpiero Caretti, который предложил это в комментарии.

bool val1 = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated

35
Небольшое исправление для более безопасного кода: bool val1 = (System.Web.HttpContext.Current.User! = Null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated
Gianpiero

14
В более новых версиях C # вы можете использовать User?.Identity.IsAuthenticated == true.
bradlis7

3
или User?.Identity.IsAuthenticated ?? false, но код @ bradlis7, вероятно, легче читать.
Майкл


6
if (User.Identity.IsAuthenticated)
{
    Page.Title = "Home page for " + User.Identity.Name;
}
else
{
    Page.Title = "Home page for guest user.";
}

Видя, что у этого подхода не так много голосов, есть ли какие-либо недостатки / проблемы, на которые следует обращать внимание при использовании этого подхода? Я решил использовать это, и, похоже, пока это работает.
pnizzle

Это почти то же самое, что и ответ, получивший
май

6

Request.User.IsAuthenticatedЯ думаю, самый простой способ проверить, аутентифицированы ли они (по памяти)


1
ну а класс Request.LogonUserIdentity предоставляет все эти методы и свойства. Спасибо за чаевые.
BlueBird

1
Нет @beardtwizzle. Это показывает, какая учетная запись Windows вошла в систему или нет. Даже если ваши файлы cookie удалены, вы можете увидеть имя пользователя учетной записи Windows и логин. Этот сработал для меня. "bool val1 = System.Web.HttpContext.Current.User.Identity.IsAuthenticated"
BlueBird
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.