ASP.NETのウェブサイトの管理システムはブラウザのキャッシュをクリアすることを退出して、Sessionのコード

3310 ワード

1.システムログイン成功時にログインしたユーザ名、パスワード等の情報(ログイン機能の一部コード)を記録する
 
  
Session["id"] = user.id.ToString();
Session["name"] = user.name.ToString();
Session["pwd"] = user.password.ToString();
Session["time"] = user.LoginTime.ToString();
Session["authority"] = user.limits.ToString();

2、管理システムの各ページに以下のコードを入れ、ページロード時にセッションの値が空かどうかを判断する
 
  
protected void Page_Load(object sender, EventArgs e)
{
if (Session["id"] == null || Session["name"] == null || Session["time"] == null || Session["authority"] == null || Session["pwd"] == null)
Response.Redirect("~/Login.aspx", true);
if (!IsPostBack)
{
。。。。。。
}
}

3、「システムを終了」をクリックして実行するイベントにsessionクリアのコードとブラウザキャッシュクリアのコードを加える
 
  
public void Clear(object sender, EventArgs e)
{
Session["id"] = null;
Session["name"] = null;
ClearClientPageCache();
Response.Redirect("~/Login.aspx");
}
public void ClearClientPageCache()
{
//
  Response.Buffer = true;
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.Cache.SetNoStore();
}

私の“システムを脱退します”の時HTMLのラベルはマスターページに書かれているので、上のコードはマスターページに書かれています。csファイルの。 マスターページコード:
 
  
runat="server"onserverclick="Clear">システムの
を使うためです
================================================================================================
これまでのバージョンでは機能が実現できず、長い間悩んでいましたが、問題点を見つけられず、実行を始めたばかりのコードを貼り付けました.同時に、自分が間違っていると思っているところを貼り付けました.
このバージョンのエラーは、ログインに成功してホームページにアクセスし、他のページにアクセスするとアクセスできず、ログイン画面にジャンプします.
私の考え:
1、私はデバッグを追跡する時、ページがロードするたびに自動的にマスターページを実行することを発見した.csファイルのClear()メソッドなので、他のページPage_Load()メソッドのif(Session["id"]==null‖Session["name"==null‖Session["time"==null‖Session["authority"==null‖Session["pwd"==null)Response.Redirect("~/Login.aspx", true);
2、私の疑問は、Clear()メソッドはクリックしてから実行されるのに、なぜページをロードするたびに自動的に実行されるのかということです.
3、私はエラーの原因はクライアントとサーバー側の実行方法の違いを考えて、それからネット上でonclickについて、onserverclickとの違いを探しましたが、彼らの理解はまだはっきりしていません.皆さんが交流してほしいです.
onclickとonserverclickの違いについては//www.jb 51.net/article/30313.htm
最初のフロントコードは(マスターページフロントコード):
 
  
アカウント
<br>  function clear()<BR>  {<BR>    <%Clear();%><BR>  } <br>

マスターページバックグラウンドコード
 
  
public void Clear()
{
Session["id"] = null;
Session["name"] = null;
}