すべての破壊規範の後でも、セッション変数の値が残るのはなぜですか?
-
09-10-2019 - |
質問
login.aspx
if (IsPostBack == false)
{
//destroy any login information
Session["password"] = "false";
Session["login"] = "false";
Session.Abandon();
Session.RemoveAll();
}
if (TextBox2.Text == main_password)
{//then he is website server admin
Session["password"] = "password";
Session["login"] = "true";
Response.Redirect("~/TABLE.aspx");
}
table.aspx
//checking if website server admin
if ("password" == (string)Session["password"])
{
link_logout.Enabled = true;
}//if ends
else
{//not authorized
Response.Redirect("~/Identify.aspx");
}//else ends
ログアウトリンクをクリックすると
- ログインページが読み込まれ、すべてのセッションの状態が破壊されます。
- ログインページは、私が使用するときにそれを確認します
response.write
セッション変数の値を表示します。 - ユーザー名とパスワードを指定して[ログイン]をクリックすると、テーブルページにリダイレクトされます。
- ログアウト]をクリックすると、ログインページにリダイレクトし、ログインページが情報を破壊します。
問題
- ログイン情報が破壊された後、テーブルリンクをクリックしてテーブルページに移動します。
- しかし、テーブルページのURLをコピーすると、私が何をしても、ページを表示できます。それは、値が破壊されたときでさえ、セッション変数の値を取得し、trueに評価します。
ASP.NETログイン機能を使用することはできません。私の制限により、そのコントロールを使用することはできません。
解決
ブラウザにページのキャッシュバージョンが表示されています。
Ctrl+F5を押すと、消える必要があります。
他のヒント
link_logoutをリンクボタンにし、ページにオンクリックを入れ、オンクリックでセッション変数を削除します。次に、サーバーの応答をリダイレクトします。
所属していません StackOverflow