Как создать систему входа в систему, используя контроль входа - PullRequest
0 голосов
/ 18 апреля 2019

Мне трудно заставить мою систему входа правильно работать для моего веб-приложения asp.net. Я использую элемент управления для входа, и мой код принимает запись для элемента управления для входа и получает поле уровня безопасности из записи базы данных доступа, имя пользователя и пароль которой соответствуют тексту, введенному в элементе управления входом. Пользователи с надлежащим уровнем безопасности проходят проверку подлинности и могут перейти на страницу меню клиента. Тем не менее, это не сработало. У нас есть только одна запись в таблице Customer, и когда я ввожу ее учетные данные в элемент управления для входа в систему, я всегда получаю сообщение об ошибке элемента управления о том, что имя входа неверно.

Код для контроля входа в систему:

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
        {
            // Creates instance of the database dsUser.
            dsUser dsUserLogin;
            // Creates string for user security access level.
            string SecurityLevel;
            // Connects the database instance to the return of VerifyUser function to verify username and password.
            dsUserLogin = clsDataLayer.VerifyUser(Server.MapPath("Team4wsc.accdb"),
            Login1.UserName, Login1.Password);
            // Rejects user if username is not recognized in the database.
            if (dsUserLogin.Customer.Count < 1)
            {
                e.Authenticated = false;
            }
            // Sets a value for the SecurityLevel string.
            SecurityLevel = dsUserLogin.Customer[0].SecurityLevel.ToString();
            // Chooses a switch section to execute
            switch (SecurityLevel)
            {
                case "A":
                    // Sets security level to A for the session.
                    e.Authenticated = true;
                    FormsAuthentication.RedirectFromLoginPage(Login1.UserName, false);
                    Session["SecurityLevel"] = "A";
                    break;
                case "U":
                    // Sets security level to U for the session.
                    e.Authenticated = true;
                    FormsAuthentication.RedirectFromLoginPage(Login1.UserName, false);
                    Session["SecurityLevel"] = "U";
                    break;
                default:
                    e.Authenticated = false;
                    break;
            }

Код для проверки функции пользователя:

// This function verifies a user in the Customer table
        public static dsUser VerifyUser(string Database, string UserName, string UserPassword)
        {
            // This declares the dataset (DS), connection (sqlConn), and data adapter (sqlDA) objects.
            dsUser DS;
            OleDbConnection sqlConn;
            OleDbDataAdapter sqlDA;
            // This establishes a new database connection.
            sqlConn = new OleDbConnection("PROVIDER=Microsoft.ACE.OLEDB.12.0;" +
            "Data Source=" + Database);
            // This creates a new database adapter, and gives user access to pages when their UserName and password are correct for the page access privelages.
            sqlDA = new OleDbDataAdapter("Select SecurityLevel from Customer " +
            "where Username like '" + UserName + "' " +
            "and Password like '" + UserPassword + "'", sqlConn);
            // This creates a new dataset.
            DS = new dsUser();
            // This fills the data set from the data adapter.
            sqlDA.Fill(DS.Customer);
            // This returns the data to the dataset.
            return DS;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...