ASP.NET——基礎4、NetSession

2525 ワード


1、要求が来るたびに、新しいIHttpHandleインタフェースを実現したクラスページのインスタンスをnewして処理する.使い切るとGCが落ちるので前回の値は保持されません.すなわち、訪問者がアクセスするのは異なるiのインスタンスである.
private int i=0;
i++;

2、すべてのアクセス者がアクセスする同じjのインスタンスは、グローバル変数を実現することができる.
private static int j=0;
j++;

 
3、Session原理、自分で車輪を作る
  • IDictionary>を用いて、既存の複数のログインユーザのデータ
  • を格納する.
    IDictionary<string,IDictionary<string,object>> data=new Dictionary<string,IDictionary<string,object>>();
    if(data.ContainsKey(sessionID))
    {
        return data[sessionID];
    }
    else
    {
        IDictionary<string,object> session=new Dictionary<string,object>();
        data[sessionID]=session;
        return session;
    }
  • クライアントから送信されたCookieを読み取るたびに、CookieにSessionID:(Key)がないことが発見された場合、クライアントにGuidを生成し、GuidをクライアントCookieに書き込み、アイデンティティを示す.
  • サービス側でGuid対応の容器を生成し、容器に複数のKey-Valueを入れる.
  • が取りに行くと、クライアントから提出されたCookieのGuidを読み、サーバに対応するコンテナを見つけます.

  • 4、Sessionはタイムアウトがあります.△Ajaxを適用して10分おきにサーバーに迷惑をかけ、サーバーに自分がまだ生きていることを伝えます.定期的に破棄する必要があります.
    5、ASP.NETにはSessionが内蔵されており、SessionのIDが自動的に割り当てられ、コピーと値のみが使用されます.CookieではASPと呼ばれています.NET_SessionId.
    6、Sessionは大きいデータを置くことができなくて、フォーマットはobjectです