5

ログインタイプが管理者かどうかを確認するために、セッション変数を文字列と比較しています。

私が使用しているコード:

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に移動します。

ユーザーがログインすると、すべてのセッション変数が値を取得します。

以下は、私がログインに使用しているデータです。このレコードは、「管理者」タイプを持つ唯一のレコードです。

画像へのリンク

セッション変数を文字列と比較する他の方法はありますか

4

8 に答える 8

5

オブジェクト型の値を文字列にキャストします

((string)Session["loggedInUserType"]) == "Administrator"
于 2012-05-21T14:18:54.140 に答える
4

試す

if(Convert.ToString(Session["loggedInUserType"]) == "Administrator) ...

于 2012-05-21T14:17:43.337 に答える
1

これを試して:

if (Session["loggedInUserType"].ToString().Trim()
        .Equals("Administrator", StringComparison.InvariantCultureIgnoreCase))
于 2012-05-21T14:17:28.073 に答える
0
if (Session["loggedInUserType"].ToString() == "Administrator")
于 2012-05-21T14:20:00.613 に答える
0

Sessionコレクションは type の値を返すためObject、それを文字列と比較すると、文字列の値ではなく、オブジェクト参照の値を比較することになります。

オブジェクト参照を にキャストstring:

if (((string)Session["loggedInUserType"]) == "Administrator")
于 2012-05-21T14:20:32.040 に答える
0

セッション ["loggedInUserType"] の最後からすべての空白が削除されていますか?

于 2012-05-21T14:17:43.337 に答える
0

あなたはこれを行うことができます :

string session = (string)Session["loggedInUserType"]

if (session == "Administrator")

または、Sessionゲッターを持つ特定のクラスにいることができます。

于 2016-10-19T14:47:50.997 に答える