Мне трудно заставить мою систему входа правильно работать для моего веб-приложения 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;
}