[ad_1]
私のasp.netプロジェクトでは、 App_Code 内にあるクラスファイルでSQLサーバーに接続しました。その中でセッションの助けを借りて、接続があります。セッションがnullの場合、他の部分は私が書いた場所で実行されています
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 クラスを使用して、中断されたスレッドの詳細を取得できます。
try { ... ur code } catch (ThreadAbortException ex) { }
リダイレクトは、顧客の観点から Web アプリケーションでは常に良い方法です。
解決策 2
データベース接続情報をセッション状態に保存しないでください。 これは非常に安全でないアプリケーションです。
ドキュメントを読むと、例外が予想されることがわかります
http://msdn.microsoft.com/en-us/library/a8wa7sdt(v=vs.80).aspx[^]
解決策 3
“を渡す間違い” 値 endResponse
パラメータ Response.Redirect
方法は以下の通り。
HttpContext.Current.Response.Redirect("~/Login.aspx", false);
詳細については、以下のリンクを参照してください。
解決策 25
確実に HttpContext.Current.Response.Redirect 出力データ (応答データ) が送り返される前に実行されます。 それ以外の場合は失敗します。
出力データがユーザー クライアントに送信される場合、リダイレクト ヘッダー “Location:” を応答ヘッダーに追加する機会はありません (これは、 HttpContext.Current.Response.Redirect します…) すでに本文を書いているためです。
[ad_2]
コメント