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

89

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

FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);

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

BlueBird
источник

Ответы:

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
BlueBird
источник
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, вероятно, легче читать.
Майкл
13

Самый простой способ:

if (Request.IsAuthenticated) ...
Кит
источник
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Я думаю, самый простой способ проверить, аутентифицированы ли они (по памяти)

isNaN1247
источник
1
ну а класс Request.LogonUserIdentity предоставляет все эти методы и свойства. Спасибо за чаевые.
BlueBird
1
Нет @beardtwizzle. Это показывает, какая учетная запись Windows вошла в систему или нет. Даже если ваши файлы cookie удалены, вы можете увидеть имя пользователя учетной записи Windows и логин. Этот сработал для меня. "bool val1 = System.Web.HttpContext.Current.User.Identity.IsAuthenticated"
BlueBird