繁体   English   中英

使用ASP.NET C#中的会话验证登录级别

[英]authenticating login level using sessions in asp.net c#

我有一个简单的登录页面,我已经使用asp.net c#创建了它。 我想做的是检索用户级别并将其分配给会话,然后根据该级别重定向到相应的页面。 但是,当我登录时没有任何反应..下面是我的代码。 有人可以告诉我我的代码有什么问题吗?

 con.Open();
        com.CommandText = "Select * from deatls Where c_id = '" + TextBox1.Text + "' and password = '" + TextBox2.Text + "'";
        com.CommandType = CommandType.Text;
        com.Connection = con;

        SqlDataReader sqlread = com.ExecuteReader();


        if (sqlread.Read())
        {
            Session["level"] = sqlread["level"];   
        }


        if ((int)Session["level"] == '1') 

            Response.Redirect("customer_menu.aspx");

        if ((int)Session["level"] == '2' )

            Response.Redirect("front.aspx");

        if  ((int)Session["level"] == '3')

            Response.Redirect("manager.aspx");

        else  
            Response.Redirect("login.aspx");

        con.Close();

您的代码请求一个switch语句,如下所示:

switch (Session["level"].ToString())
{
    case "1":
        Response.Redirect("customer_menu.aspx");
        break;
    case "2":
        Response.Redirect("front.aspx");
        break;
    case "3":
        Response.Redirect("manager.aspx");
        break;
    default:
        Response.Redirect("login.aspx");
        break;
}

对于初学者,您需要将Session["level"]强制转换为int ,然后使用string检查是否相等(或尝试这样做)。 其次,您要对要检查的值使用单引号。 这段代码可以编译吗? 你有异常处理吗? 我的猜测是它出错并且根本无法运行。 您可以发布完整代码吗?

TheGeekYouNeed是正确的。 您首先应该尝试从要检查的整数值中删除单引号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM