Як перевірити, чи користувач «увійшов»?


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 видалено, ви можете побачити ім'я користувача облікового запису вікна та логін. Цей працював у мене. "bool val1 = System.Web.HttpContext.Current.User.Identity.IsAuthenticated"
BlueBird
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.