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ログイン関数を使用できません。制限により、そのコントロールを使用できません。