ユーザーが自分のアカウントにログインできる Web サイトをコーディングしています。
アカウントにログインした後、ユーザーは自分の秘密の質問または答えを変更できます。そのためには、次の 3 つのページをトラバースする必要があります。
1) ユーザーはすでにログインしているにもかかわらず、最初のページでユーザーにパスワードの入力を求めます。指定されたパスワードが受け入れられると、Edit_Secret_1という名前のセッションが作成され、コンテンツが成功します。
2) 2 番目のページが読み込まれると、セッションEdit_Secret_1の内容がチェックされます。それらが null の場合、つまりユーザーがアドレス バーからページに移動したことを意味し、ユーザーは AccountManagement ページにリダイレクトされます。それ以外の場合、セッションEdit_Secret_1は null に設定されます。これは、ユーザーがセッションで一度秘密の質問/答えを変更した後、アドレス バーから再度ページにアクセスすることを防ぐためです。
3) 3 ページ目に簡単な確認メッセージが表示されます。私はまだそれをしていません。
これは 2 ページ目のスクリーンショットです。
データベースからデータを取得する部分をコーディングしていないため、秘密の質問と秘密の答えのフィールドは空です。
ボタンをテストするために、 [変更の保存] ボタンをコーディングして HomePage.aspx にリダイレクトし、[キャンセル] ボタンは ContactUs.aspx にリダイレクトするようにしました。2 つのボタンのいずれかをクリックすると、AccountManagement.aspx にリダイレクトされます。問題がセッションを null に設定することに関係していることはわかっていますが、解決方法がわかりません。誰か助けてくれませんか?
コードは次のとおりです。
protected void Page_Load(object sender, EventArgs e)
{
Label_Error.Visible = false;
if (Session["Username"] == null)
{
Response.Redirect("HomePage.aspx");
}
else
{
if (Session["Edit_Secret_1"] == null)
{
Response.Redirect("AccountManagement.aspx");
}
else
{
Session["Edit_Secret_1"] = null;
}
}
}
protected void Cancel_Click(object sender, EventArgs e)
{
Response.Redirect("ContactUs.aspx");
}
protected void Button_SaveChanges_Click(object sender, EventArgs e)
{
Response.Redirect("HomePage.aspx");
}