2

asp.netログインページに次のコードがあります。

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

私が望むシナリオは次のとおりです。

ユーザーがログインページに入ると、認証Cookieを持っているかどうかがチェックされ、持っている場合は、デフォルトページ(認証されたユーザーのみが表示できるページ)に自動的にリダイレクトされます。

これはどのように達成できますか?

4

2 に答える 2

3

たとえば、これをPage_Initに配置します...

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

ユーザーがログインしている場合は、ユーザーを宛先にバウンスするだけです。

于 2011-10-08T19:12:17.507 に答える
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 );
      }
   }
于 2011-10-08T19:13:31.647 に答える