ログインタイプが管理者かどうかを確認するために、セッション変数を文字列と比較しています。
私が使用しているコード:
if (Session["loggedInUsername"] == null)
{
btnLogin.Text = "Sign In";
lblWelcome.Text = "Welcome!";
hypManageRestaurants.Enabled = false;
hypManageReviews.Enabled = false;
hypPostReviews.Enabled = false;
}
else
{
if (Session["loggedInUserType"] == "Administrator")
{
hypManageRestaurants.Enabled = true;
hypManageReviews.Enabled = true;
hypPostReviews.Enabled = true;
}
else
{
hypManageRestaurants.Enabled = false;
hypManageReviews.Enabled = false;
hypPostReviews.Enabled = true;
}
lblWelcome.Text = "Welcome " + Session["loggedInUsername"];
btnLogin.Text = "Sign Out";
}
最初に、ユーザーがログインしているかどうかを確認しています。ユーザーが正常にログインすると、セッション変数「loggedInUsername」にユーザー名の値が含まれます。「loggedInUsername」セッション変数が空でない場合、「loggedInUserType」セッション変数でログインしているユーザーのタイプがチェックされます。
ここで奇妙なことに、「loggedInUserType」の値は「」なしで正確に「Administrator」です。セッション変数を文字列「Administrator」と比較しているif関数で、スキップされてelseに移動します。
ユーザーがログインすると、すべてのセッション変数が値を取得します。
以下は、私がログインに使用しているデータです。このレコードは、「管理者」タイプを持つ唯一のレコードです。
セッション変数を文字列と比較する他の方法はありますか