0

私の Web サイトでは、ユーザーをセッション タイムアウト前と同じページにリダイレクトしたいと考えています。

URLをクエリ文字列で送信してみましたが、URLにも「&」が含まれていたためうまくいきませんでした。

私の URL は:Default.aspx?FileID=23&TabID=3でした。

クエリ文字列のみがDefault.aspx?FileID=23あり、TabID は省略されました。また、入手する方法はありますか?クエリ文字列を使用しない場合、他の方法はありますか?

4

2 に答える 2

2

フォーム認証を使用している場合は、セッションのタイムアウト時にこれを試してください FormsAuthentication.RedirectToLoginPage(); で十分ですが、ログイン以外のページにリダイレクトしたい場合は、以下のカスタム行を使用してください。Server.UrlEncode を使用して、クエリ文字列で & を許可します

     public static  void DisposeAndLogout()
            {

                HttpContext context = HttpContext.Current;
                try
                {
                    FormsAuthentication.SignOut();
                    FormsAuthentication.Initialize();
                    Roles.DeleteCookie();
                    context.Session.Clear();
                }
                catch (Exception ex)
                {
                    ErrorHandler.HandleException(ex);
                }
                finally
                {
                    FormsAuthentication.RedirectToLoginPage();
//or can send to some other page
                    string OriginalUrl = context.Request.RawUrl;
                    string LoginPageUrl = @"~\Login.aspx";
                    context.Response.Redirect(String.Format("{0}?ReturnUrl={1}", LoginPageUrl, context.Server.UrlEncode(OriginalUrl)));
                }
            }
于 2012-05-17T07:51:48.620 に答える
1

FormsAuthentication を使用している場合:

ログイン:

FormsAuthentication.RedirectFromLoginPage() 

http://msdn.microsoft.com/en-us/library/ka5ffkce.aspx

ログアウト:

FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspx

于 2012-05-17T07:51:43.637 に答える