2

非常に奇妙なエラーが発生しました。ASP.NET は決して得意ではありませんが、シングル サインオン アプリケーションの開発を手伝っていて、ユーザーのリダイレクトに問題があります。できるだけシンプルにします。これがどのように機能するかです。

1.) それらは別の Web サイトから来ており、ID を含むシングル サインオン オブジェクトを渡します。

2.) ページの読み込み時に、その ID を使用してデータベースを検索し、情報を取得します。情報が不足している場合は、情報を入力する必要があります。

3.) 欠落している情報がない場合は、ID をアクティブなセッション テーブルに挿入し、最終的な Web サイトにリダイレクトします。

問題は、ページが読み込まれ、Single Sign-On オブジェクトからデータが正常に受信されたときに、SQL 挿入ステートメントを正常に実行できることです。しかし、SQL挿入ステートメントを実行してから、それらを別のページにリダイレクトすると、ページは404秒になります。リダイレクトがそこに配置されると、完了できなかったことを示すシングル サインオン エラーも発生します。SQL ステートメントが実行されたことを登録しますが、リダイレクトされません。言ったように、それはただの404です。

これが起こる理由は何ですか?コードの一般的なフローは次のとおりです。

protected void Page_Load(object sender, EventArgs e)
{
     SSOObject x = ServiceProvider.RecieveSSO(Request);
     userID = x.ID;

     SqlConnection conn = new SqlConnection(connString);
     conn.Open();
     SqlCommand comm = ("INSERT INTO etc...");

     comm.Parameters.AddWithValue("@ID", userID);

     comm.ExecuteNonQuery();
     conn.Close();
     comm.Dispose();

     // It works fine up to here, but if I add this it 404's:
     Response.Redirect("http://ourwebsite.com/user/etc...");
}

これを試してくれた人に前もって感謝します、それは私を少し困惑させてきました。

編集:重要な情報を省略しました。SSO コードをコメントアウトし、ID をハードコア化するだけで、プロセス全体が機能します。

4

1 に答える 1

0

次のように false を渡すだけでした (パラメーターはページの実行を終了するためのものでした)。

Response.Redirect("http://website.com", false);
于 2013-04-11T19:40:43.503 に答える