0

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は、セッション変数の値を表示するために使用するときにそれを確認します。
  • ユーザー名とパスワードを入力して[ログイン]をクリックすると、テーブルページにリダイレクトされます。
  • ログアウトをクリックすると、ログインページにリダイレクトされ、ログインページは情報を破棄します。

問題

  • ログイン情報が破棄された後、テーブルリンクをクリックすると、テーブルページに移動し、NO NOと表示され、ログインページにリダイレクトされます。
  • しかし、テーブルページのURLをコピーして貼り付けると、何をしてもページを表示できます。つまり、値が破棄された場合でも、セッション変数の値を取得してTRUEに評価します。

asp.netログイン関数を使用できません。制限により、そのコントロールを使用できません。

4

2 に答える 2

2

ブラウザーにキャッシュされたバージョンのページが表示されています。

Ctrl+F5 を押すと消えます。

于 2010-11-14T04:00:24.330 に答える
1

link_logout をリンクボタンにし、ページに onclick を配置し、onclick でセッション変数を削除します。次に、サーバー応答リダイレクトを行います。

于 2010-11-14T03:52:20.523 に答える