すべての破壊規範の後でも、セッション変数の値が残るのはなぜですか?

StackOverflow https://stackoverflow.com/questions/4176108

質問

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をリンクボタンにし、ページにオンクリックを入れ、オンクリックでセッション変数を削除します。次に、サーバーの応答をリダイレクトします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top