如果用户具有身份验证cookie,则重定向到默认页面

时间:2011-10-08 19:05:57

标签: asp.net webforms forms-authentication remember-me

我的asp.net登录页面中有以下代码:

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

我想要的场景是:

当用户进入登录页面时,将检查他是否有身份验证cookie,如果有,则会自动重定向到默认页面(这是一个只有经过身份验证的用户才能看到的页面)。

如何实现这一目标?

2 个答案:

答案 0 :(得分:3)

将其放在Page_Init中,例如......

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

如果他们已登录,它只会将用户退回到目的地。

答案 1 :(得分:3)

如果验证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 );
      }
   }