首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在PageLoad中捕获

尝试在PageLoad中捕获
EN

Stack Overflow用户
提问于 2020-04-20 21:04:17
回答 1查看 274关注 0票数 0

我在Page_Load方法中的Try Catch遇到了问题。如果会话为空,则捕获应该生效,但在Visual Studio中按下"Continue“之前,它不会生效。但之后一切都会按其应有的方式运行。你知道问题出在哪里吗?

下面是我的代码:

代码语言:javascript
复制
SqlConnection conn = new SqlConnection(@"Data Source=localhost\sqlexpress;Initial Catalog=VulnerableApp;Integrated Security=True");
 try
        {
            conn.Open();
            SqlCommand validation = new SqlCommand();
            validation.Connection = conn;
            validation.CommandText = "Select Role From Users Where Username ='" + Session["Username"] + "';";
            string rank = (string)validation.ExecuteScalar();

            if (rank.Trim() == "Admin" || rank.Trim() == "Moderator")
            {
                lblAdmin.Text = "Welcome " + (string)Session["Username"];
            }
            else
            {
                MessageBox.Show("Your rank is to low " + rank);
                Response.Redirect("Done.aspx");
            }conn.Close();
        }
        catch (NullReferenceException)
        {
            MessageBox.Show("You have to be logged in");
            Response.Redirect("Login.aspx");
        }
EN

回答 1

Stack Overflow用户

发布于 2020-04-20 21:09:34

尝尝这个

代码语言:javascript
复制
using (SqlConnection conn = new SqlConnection(@"Data Source=localhost\sqlexpress;Initial Catalog=VulnerableApp;Integrated Security=True"))
        {
            try
            {
                conn.Open();
                SqlCommand validation = new SqlCommand();
                validation.Connection = conn;
                validation.CommandText = "Select Role From Users Where Username ='" + Session["Username"] + "';";
                string rank = (string)validation.ExecuteScalar();

                if (rank.Trim() == "Admin" || rank.Trim() == "Moderator")
                {
                    lblAdmin.Text = "Welcome " + (string)Session["Username"];
                }
                else
                {
                    MessageBox.Show("Your rank is to low " + rank);
                    Response.Redirect("Done.aspx");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("You have to be logged in" + ex.Message);
                Response.Redirect("Login.aspx");
            }
        }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61323196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档