Как инициализировать функциональность входа в систему в форме Site.Master, чтобы получить идентификатор входа из SQL после перенаправления? - PullRequest
2 голосов

Как сохранить результаты вошедшего в систему пользователя после успешного перенаправления со страницы входа или страницы регистрации? У меня есть кнопка в родительской форме Site.Master, которая загружается с любой другой веб-формой. Я хочу получить идентификатор пользователя, вошедшего в систему, из моей базы данных SQL и заполнить текстовое поле в форме для резервирования.

Мой проект в ASP.NET о бронировании номеров. У меня есть кнопка входа в мастер-форму, которая состоит из панели навигации с 8 кнопками меню, каждая из которых перенаправляет на другую веб-страницу. Данные в форме входа проверяются на моем SQL-сервере, и при успешном входе пользователь перенаправляется на страницу бронирования. Моя идея состояла в том, чтобы объявить 2 глобальные переменные, такие как bool, проверяя, вошел ли пользователь в систему при каждом перенаправлении, и пустую строку, которая получает значение идентификатора пользователя из SQL, если bool LoggedIn имеет значение true. Но мне не удалось инициализировать глобальные переменные и вызвать их в дочерней форме (форма бронирования), и, честно говоря, я не уверен, правильно ли я подошел для достижения этой цели. Мой код в Login_in.aspx.cs для перенаправления входа следующий:

protected void Button1_Click(object sender, EventArgs e)
        {
            String source = @"Data Source=DESKTOP;Initial Catalog=projectX;Integrated Security=true;";
            SqlConnection con = new SqlConnection(source);

            {
                try
                {
                    string uid = TextBox1.Text;
                    string pass = TextBox2.Text;
                    con.Open();
                    string query = "select * from Users where Username='" + uid + "' and Password='" + pass + "'";
                    SqlCommand cmd = new SqlCommand(query, con);
                    SqlDataReader sdr = cmd.ExecuteReader();
                    if (sdr.Read())
                    {
                        Response.Redirect("~/Booking.aspx");
                    }
                    else
                    {
                        Label10.Text = "Wrong pass or username!";
                    }
                    con.Close();

                    Label10.Visible = true;
                }

                catch (Exception ex)
                {
                    Response.Write(ex.Message);
                }
            }

Я не уверен, должен ли я объявлять глобальные переменные для bool LoggedIn и строки UserID в форме входа или в основной форме, но я хочу изменить их значения в Response.Redirect ("~ / Booking.aspx" ). Если они объявлены в файле Site.Master.cs, как я могу изменить их значения в форме входа в систему и вызвать их (и их значения) в форме бронирования. Я пытался объявить их как public static bool LoggedIn = false; публичная статическая строка userID; но не знал, как инициализировать свойства get & set между формами.

В моей форме бронирования у меня есть текстовое поле, которое я хочу заполнить именем пользователя вошедшего в систему пользователя по идентификатору пользователя (из sql). Как установить свойства в форме, в которой объявлены переменные, и в формах, где они называются?

1 Ответ

0 голосов
/ 10 июня 2019

ASP.NET Web Forms поддерживает два способа защиты вашего веб-приложения:

Они оба предоставляют вам инфраструктуру для аутентификации и авторизации пользователей, а также доступа к зарегистрированному пользователю.Они оба используют базу данных в качестве хранилища.Различные методы используются для идентификации аутентифицированного пользователя между запросами, такими как файлы cookie.

Настоятельно рекомендуется использовать любой из них в своем приложении.Есть тонны документации для чтения.

С другой стороны, внедрение вашей собственной системы безопасности будет трудным, подверженным ошибкам, длительным, неэффективным и в конечном итоге небезопасным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...