我正在将 session 变量与字符串进行比较,以检查登录类型是否为管理员。
我正在使用的代码:
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";
}
所以首先我要检查是否有用户登录。如果用户成功登录, session 变量“loggedInUsername”将具有用户名的值。如果“loggedInUsername” session 变量不为空,它将检查“loggedInUserType” session 变量以了解登录用户的类型。
奇怪的事情来了,“loggedInUserType”的值恰好是“Administrator”而没有“”,在我比较 session 变量和字符串“Administrator”的if函数中被跳过并转到否则。
所有 session 变量都在用户登录时获取值。
下面是我用来登录的数据,这条记录是唯一一条类型为“管理员”的记录。
是否有任何其他方法可以将 session 变量与字符串进行比较
最佳答案
将对象类型值转换为字符串
((string)Session["loggedInUserType"]) == "Administrator"
关于c# - 将 session 变量值与字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10686953/