Конечно, службы идентификации ASP.Net - это зрелый способ решения такой задачи, но если вы хотите, вы можете иметь свой собственный метод аутентификации, но вам нужно будет реализовать много вещей.
Многие извсе, что вам нужно, на самом деле основано на сценарии, который вы реализуете, но самое основное, что вам нужно, это статический пользователь, который будет использоваться через ваши методы, чтобы увидеть, вошел ли пользователь в систему или нет.Например, вы можете иметь:
public static class Authentication
{
public static User CurrentUser { get; private set; }
public static bool Login(User user)
{
if(user == null)
throw new ArgumentException("Invalid user","user");
CurrentUser = user;
}
}
Это просто самая базовая реализация такой вещи, которую вы можете затем проверить, является ли CurrentUser
нулем или нет, и направить пользователя на страницу входа или показать ей результаты.
По мере роста ваших потребностей вам потребуется реализовать больше вещей.Выход из системы, локальная или удаленная база данных для пользователей, хранит в настоящий момент зарегистрированного пользователя на диске, так что ей не нужно повторно входить в систему после закрытия приложения и многих других вещей
Редактировать
Основываясь на своей новой информации, вы можете добавить эту строку к своей кнопке входа в систему, щелкнув мышью так:
if (result.Rows.Count == 1)
{
Authentication.Login(new User(result.Rows[0]["username"],result.Rows[0]["role_id"])
//The rest of code
}
Я также предположил, что у вас есть такой класс:
class User
{
public string Name { get; }
public int RoleId { get; }
public User(string name, int roleId)
{
Name = name;
RoleId = roleId;
}
}
И затем вы должны проверить Authentication.CurrentUser
против null
в своей пользовательской форме или в конструкторах административной формы, чтобы убедиться, что пользователь входит в систему. Вы можете использовать информацию в Authentication.CurrentUser
, чтобы отобразить имя пользователя или роль, зарегистрированную в системе, или любую другую информацию.
Надеюсь, это поможет вам.Если вам нужна дополнительная информация, пожалуйста, скажите.