2012-04-12 28 views
1

私はlogin.aspxを持っています。そこにはページをリダイレクトするためのコードがあります。フォーム認証リダイレクトのページが機能しません

Server.Transfer(string.Format("~/admin/FillUserExtraInfo.aspx?UserName={0}",Server.UrlEncode(loginInitial.UserName))); 

FormsAuthentication.RedirectToLoginPage()が動作しません。しかし、それはその後、FillUserExtraInfo.aspx

で、
protected void Page_Load(object sender, EventArgs e) 
    { 
     // retrieve the username from the querystring 
     userName = this.Request.QueryString["UserName"]; 
     string mode = UsefulFunctions.GetOperatingMode(); 
     if (mode == ConfigurationSettingValues.OperatingModes.Backup.ToString()) 
      FormsAuthentication.RedirectToLoginPage(); 

を仕事をしました。プログラムはPage_Loadの最後まで実行を続けてから、最終的にログインに戻ります。

更新日:期間中、私が見つけたURLの最後にbacomes

http://localhost:53906/Login.aspx?ReturnUrl=%2fLogin.aspx%3fAction%3dLogout。 FormsAuthentication.RedirectToLoginPage()が動作しないのはなぜ

  1. Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack. 
    

    私のweb.configファイル:

    <authentication mode="Forms"> 
         <forms loginUrl="Login.aspx" protection="All" timeout="30" requireSSL="false" slidingExpiration="true" defaultUrl="default.aspx" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/> 
        </authentication> 
    

    私の質問が、私はエラーを得ましたか。

  2. 私は遭遇したエラーにどう対処するのですか?

ありがとうございます。

2番目の更新:FormsAuthentication.RedirectToLoginPage()の後にResponse.End()を追加しましたが、それでも例外はあります。

答えて

0

Server.Transfer()ではなくResponse.Redirect( "url"、false)を使用してみます。

Response.Redirect("~/admin/FillUserExtraInfo.aspx?UserName=" + Server.UrlEncode(loginInitial.UserName) + "", false); 

reference

+0

しかし、私は同様に、変数 "ユーザー名" を渡す必要があります。 –

+0

私は自分の答えを編集しました。私はまだそれをテストしていない一度チェックしてください。 –

+0

理由がわかりません。ページをリダイレクトできません。それは動作しません。 –

関連する問題