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”而没有“”,在 if 函数中,我将会话变量与字符串“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

你确定所有的空格都从 Session["loggedInUserType"] 的末尾被删除了吗?

于 2012-05-21T14:17:43.337 回答
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

你可以这样做 :

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

if (session == "Administrator")

或者您Session可以与吸气剂一起参加特定课程。

于 2016-10-19T14:47:50.997 回答
0
if(Convert.ToString(Session["loggedInUserType"]) == "Administrator)

这样就不需要检查空值,因为 Convert.ToString 处理空值返回 "" 空字符串

于 2018-02-19T05:57:49.987 回答