非常に奇妙なエラーが発生しました。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 をハードコア化するだけで、プロセス全体が機能します。