【解決方法】クラスファイルからasp.netの別のページにリダイレクトする方法


私のasp.netプロジェクトでは、 App_Code 内にあるクラスファイルでSQLサーバーに接続しました。その中でセッションの助けを借りて、接続があります。セッションがnullの場合、他の部分は私が書いた場所で実行されています

C#
public static SqlConnection OpenConnection()
        {
            try
            {
                if (HttpContext.Current.Session["DATABASE"] != null && HttpContext.Current.Session["USERNAME"] != null && HttpContext.Current.Session["PASSWORD"] != null && HttpContext.Current.Session["SERVERNAME"] != null)
                {
                    cn = new SqlConnection("uid=" + HttpContext.Current.Session["USERNAME"].ToString() + ";pwd=" + HttpContext.Current.Session["PASSWORD"].ToString() + ";server=" + HttpContext.Current.Session["SERVERNAME"].ToString() + ";database=" + HttpContext.Current.Session["DATABASE"].ToString() + "");
                    if (cn.State == ConnectionState.Closed)
                    {
                        cn.Open();
                    }

                }
                else
                {
                    HttpContext.Current.Response.Redirect("~/Login.aspx");

                }
                return cn;

            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

ルート フォルダー内のマイ ログイン ページ。 else の部分に来ていますが、「Thread Was being Abroted」というエラーが表示されます。 適切なログインパスを取得していないか、それとも何ですか。 そして、それはページにリダイレクトする良い方法です.

私を助けてください。

ありがとう。

解決策 1

.NET フレームワークの ThreadAbortException クラスを使用して、中断されたスレッドの詳細を取得できます。

C#
try
{
... ur code
}
catch (ThreadAbortException ex)
{
}

リダイレクトは、顧客の観点から Web アプリケーションでは常に良い方法です。

解決策 2

データベース接続情報をセッション状態に保存しないでください。 これは非常に安全でないアプリケーションです。

ドキュメントを読むと、例外が予想されることがわかります
http://msdn.microsoft.com/en-us/library/a8wa7sdt(v=vs.80).aspx[^]

解決策 3

“を渡す間違い” 値 endResponse パラメータ Response.Redirect 方法は以下の通り。

C#
HttpContext.Current.Response.Redirect("~/Login.aspx", false);

詳細については、以下のリンクを参照してください。

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

解決策 25

確実に HttpContext.Current.Response.Redirect 出力データ (応答データ) が送り返される前に実行されます。 それ以外の場合は失敗します。

出力データがユーザー クライアントに送信される場合、リダイレクト ヘッダー “Location:” を応答ヘッダーに追加する機会はありません (これは、 HttpContext.Current.Response.Redirect します…) すでに本文を書いているためです。

コメント

タイトルとURLをコピーしました