将会话变量值与字符串进行比较

dri*_*u16 5 c# asp.net session-variables

我将会话变量与字符串进行比较,以检查登录类型是否为管理员.

我正在使用的代码:

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";
        }
Run Code Online (Sandbox Code Playgroud)

所以首先我要检查是否有用户登录过.如果用户成功登录,则会话变量"loggedInUsername"将具有用户名的值.如果"loggedInUsername"会话变量不为空,它将检查"loggedInUserType"会话变量以获取登录用户的类型.

这里谈到的奇怪的事情,在"loggedInUserType"的价值是完全"管理员"不"",在那里我的会话变量与字符串IF函数"管理员"正被跳过,转到别的.

用户登录时,所有会话变量都会获取值.

以下是我用于登录的数据,此记录是唯一具有"管理员"类型的记录.

链接到图像

是否有任何其他方法可以将会话变量与字符串进行比较

Car*_*der 5

尝试

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


Jai*_*han 5

将对象类型值转换为字符串

((string)Session["loggedInUserType"]) == "Administrator"
Run Code Online (Sandbox Code Playgroud)