セッションの使い方

3327 ワード

突然sessionが合法かどうかを判断する方法を思いついた.Netの、以前の私たちのやり方は次のような形式でした.
1 if (Session["UserID"] == "" || Session["UserID"] == null)
2 {
3 Response.Redirect("../Login.aspx?m= , !");
4 }


ずっと私はこの方法がとてもよくないと思って、とてもよくなくて、しかしずっと良い方法を探し当てていないで、さっき突然匿名メソッドと思って、结合??演算子は、セッションが空であれば合法的ではなく、ユーザーがログインしているかどうかを判断するために使用できます.
Session["UserID"]はObjectタイプを返すため、空であればポインター異常を報知し、上の形式で見ることができる.また、このようなログイン状態を判断する行為は、一部の項目ではほとんどのページで使用する必要があるため、他の共通の静的方法とともにクラスに入れて、以下のように書く方法を抽出することができる.
1 /// <summary>
2 /// , session ,
3 /// </summary>
4 public static Func<Object, string> isLogin = session => session as string ?? string.Empty;


SessionにはObjectが格納されているので、文字列でも数字でもクラスでも集合でも構いません.私の上のコードは文字列が格納されていると仮定しています.呼び出すとき、この匿名のメソッドを呼び出すように呼び出されます.
1 if (string.IsNullOrEmpty(isLogin(Session["UserID"])))
2 {
3 Response.Redirect("../Login.aspx?m= , !");
4 }


なぜstringを直接使用しないのかを説明できます.セシオンを直接判断するのか?では、Sessionであなたが判断していないこのkeyが空のポインタ異常を直接報告すると教えてあげます.