Как проверить, вошел ли пользователь в систему

Я создал страницу входа в систему, где пользователи должны предоставить имя пользователя и пароль, чтобы иметь доступ к некоторым конкретным ресурсам, где они могут загружать изображения или просто редактировать некоторые описания о себе. Мой файл web.config выглядит так:

    <authentication mode="Forms">
      <forms loginUrl="Secure/Login.aspx" defaultUrl="index.aspx" name=".ASPXFORMSAUTH" timeout="30"/>
    </authentication>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>

<location path="Secure">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>

Поэтому, когда пользователь ввел имя пользователя и pw, он перенаправляется на страницу index.aspx. В зависимости от того, вошел пользователь в систему или нет, index.aspx должен показывать или скрывать некоторые вещи. Вот как я проверяю, вошел ли он в систему:

bool isLoggedIn = HttpContext.Current.User.Identity.IsAuthenticated;  
    if (isLoggedIn) 
    {
        placeHolder2.Visible = true;
        ...
    }

Теперь проблема в том, что: HttpContext.Current.User.Identity.IsAuthenticated; ВСЕГДА возвращает true, поэтому посторонние люди будут видеть то, что должно быть скрыто.

Я не уверен насчет: HttpContext.Current.User.Identity.IsAuthenticated; Я только что гуглил "Как проверить, вошел ли пользователь в систему", и предложения были следующими: HttpContext.Current.User.Identity.IsAuthenticated;

Я хочу, чтобы только те пользователи, которые вошли в систему, просмотрели личные вещи. Как мне это сделать? Как сделать так, чтобы: HttpContext.Current.User.Identity.IsAuthenticated возвращал true только тогда, когда пользователь вошел в систему? Спасибо

3 ответа

if (Request.IsAuthenticated) {.....}

редактировать на основе некоторых комментариев. Аутентифицированы с помощью "форм", проверьте здесь

HttpContext.Current.User.Identity.IsAuthenticated // будет "Forms", если используется авторизация на основе форм // "Negotiate" использует интегрированные окна // etc

Если вы используете.net 4.5, и вы хотите, чтобы пользователь "SET" утверждал. ClaimsPrincipal рекомендуется прочитать

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

Моя кодировка

bool val1 = (System.Web.HttpContext.Current.User != null) &&
    (System.Web.HttpContext.Current.User.Identity.IsAuthenticated) &&
    (System.Web.HttpContext.Current.User.Identity.AuthenticationType.ToString() == "Forms");

для идентификации пользователей с помощью доменного имени и входа в систему

Другие вопросы по тегам