Asp.Netでセッションが合法かどうかを判断する方法
1602 ワード
if (Session["UserID"] == "" || Session["UserID"] == null)
{
Response.Redirect("../Login.aspx?m= , !");
}
ずっと私はこの方法がとてもよくないと思って、とてもよくなくて、しかしずっと良い方法を探し当てていないで、さっき突然匿名の方法と考えて、结合??演算子は、セッションが空であれば合法的ではなく、ユーザーがログインしているかどうかを判断するために使用できます.Session["UserID"]はObjectタイプを返すため、空であればポインター異常を報知し、上の形式で見ることができる.また、このようなログイン状態を判断する行為は、一部の項目ではほとんどのページで使用する必要があるため、他の共通の静的方法とともにクラスに入れて、以下のように書く方法を抽出することができる.
///
/// , session ,
///
public static Func isLogin = session => session as string ?? string.Empty;SessionにはObjectが格納されているので、文字列でも数字でもクラスでも集合でも構いません.私の上のコードは文字列が格納されていると仮定しています.呼び出すとき、この匿名のメソッドを呼び出すように呼び出されます.
if (string.IsNullOrEmpty(isLogin(Session["UserID"])))
{
Response.Redirect("../Login.aspx?m= , !");
}
なぜstringを直接使用しないのかを説明できます.セシオンを直接判断するのか?では、Sessionであなたが判断していないこのkeyが空のポインタ異常を直接報告すると教えてあげます.クラスなら?sessionが格納しているのは、例えばUserクラスであり、上のコードはこのような形式に変更されます.
public static Func
返されるタイプがUserであるため、返される値を受信するために1つのUserクラスを使用することができ、その後の操作で直接使用することができます.
User _user = isLogin(Session["UserID"]);
if (_user.UserID == -1)
{
//
}
このような方法がいいかどうか分かりませんが、このようなコードは、読みやすく、操作も便利だと思います.もっといい方法があれば、ご指導を惜しまないでください.