Перенаправление на страницу по умолчанию, если у пользователя есть файл cookie аутентификации

У меня есть следующий код на моей странице входа asp.net:

if (Request.QueryString["ReturnUrl"] != null)
        FormsAuthentication.RedirectFromLoginPage(UserLogin.UserName, UserLogin.RememberMeSet);
    else
        FormsAuthentication.SetAuthCookie(UserLogin.UserName, UserLogin.RememberMeSet);

Сценарий, который я хочу:

когда пользователь входит на страницу входа, будет проверено, есть ли у него файл cookie аутентификации, и если да, он автоматически перенаправляется на страницу по умолчанию (это страница, которую могут видеть только аутентифицированные пользователи).

Как этого можно достичь?


person user560498    schedule 08.10.2011    source источник


Ответы (2)


Поместите это в Page_Init, например...

  if (Request.IsAuthenticated) {
            Response.Redirect(Request.QueryString["ReturnUrl"]);
  }

Он просто перенаправит пользователя к месту назначения, если он вошел в систему.

person simbolo    schedule 08.10.2011

Если файл cookie аутентификации присутствует и является действительным, контекст будет заполнен данными пользователя. Просто проверьте, если:

public class Login_Page {
   public void Page_Load( ... ) {
      if ( this.Context.User != null && this.Context.User.Identity != null &&
           this.Context.User.Identity.IsAuthenticated )
        this.Response.Redirect( FormsAuthentication.DefaultUrl );
      }
   }
person Wiktor Zychla    schedule 08.10.2011
comment
это FormsAuthentication.DefaultUrl, не так ли? - person user560498; 08.10.2011
comment
Спасибо, память меня подвела :) - person Wiktor Zychla; 08.10.2011