Попробуйте поймать в PageLoad - PullRequest
0 голосов
/ 20 апреля 2020

У меня проблема с моим Try Catch в методе Page_Load. Catch должен вступить в силу, если сеанс имеет значение NULL, но это происходит до того, как я нажимаю «Продолжить» в Visual Studio. Но тогда все работает так, как должно. У вас есть идеи, в чем может быть проблема?

Вот мой код:

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");
        }

1 Ответ

0 голосов
/ 20 апреля 2020

попробуйте

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");
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...