Создание веб-приложения, сочетающего в себе проектирование и создание баз данных, работу со сторонними форматами данных, программирование в NET и веб-разработку, страница 14

Для работы с пользователями на уровне программы в ASP.NET по умолчанию используется класс MembershipProvider.

Класс MembershipProvider описывает контракт, который реализует ASP.NET, чтобы предоставлять службы членства, используя, пользовательские поставщики участия.

Членство ASP.NET разработано для того, чтобы обеспечить простое использование нескольких различных поставщиков членства для приложений ASP.NET. Можно использовать предоставленные поставщики участия, входящие в платформу .NET Framework, или собственные поставщики [2].

В данном проекте мной было решено переопределить данный класс. Пользовательский класс PowerPlayProvider наследует абстрактный класс MembershipProvider и реализует его методы.

Класс MembershipUser отображает и обновляет информацию пользователя членства в хранилище данных членства.

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

Объект MembershipUser возвращается методами GetUser и CreateUser, или как часть коллекции MembershipUserCollection, возвращенной методами GetAllUsers, FindUsersByName и FindUsersByEmail.

Объект MembershipUser запрашивается методом UpdateUser, когда нужно обновить информацию о существующем пользователе членства [3].

2.1.1  Регистрация пользователей.

Поля пользовательского класса PowerPlayProvider:

Все поля класса имеют идентификатор доступа private.

•  int newPasswordLength;

//длинна нового пароля

•  string connectionString;

//строка подключения к БД.

•  string applicationName;

//имя приложения

•  bool enablePasswordReset;

//включена ли мозножность сброса пароля

•  bool enablePasswordRetrieval;

//включена ли возможность восстановления пароля

•  bool requiresQuestionAndAnswer;

//включена ли проверка по контрольному вопросу

•  bool requiresUniqueEmail;

//вклюена ли проверка уникальности емейла

•  int maxInvalidPasswordAttempts;

//максимальное число попыток неправильного ввода пароля

•  int passwordAttemptWindow;

// интервал времени, которое должно пройти между отслеживанием последовательных попыток ввода недействительного пароля или контрольного ответа.

•  int minRequiredNonAlphanumericCharacters;

//минимальное число не числовых и алфавитных символов в пароле.

•  int minRequiredPasswordLength;

//минимальная длина пароля.

•  string passwordStrengthRegularExpression;

//регулярное выражение, используемое для оценки пароля.

•  MembershipPasswordFormat passwordFormat;

//формат пароля

•  string providerName;

//имя поставщика услуг

Методы пользовательского класса PoverPlayProvider:

Все методы класса имею модификатор доступа public и модификатор override.

•  void Initialize(string name, NameValueCollection config)

//инициализирует поставщика и поля класса. В качестве аргументов получает имя поставщика и коллекцию пар имя/значение, представляющую особые атрибуты поставщика, определенные в конфигурации поставщика.

•  bool ChangePassword(string username, string oldPassword, string newPassword)

//реализует возможность смены пароля. Возвращает отметку об успешной операции. В качестве аргументов получает имя пользователя, старый пароль и новый пароль.

•  bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer)

//реализует смену контрольного вопроса и ответа. Возвращает отметку об успешности операции. В качестве аргументов получает имя пользователя, пароль, новый секретный вопрос и ответ на него.

•  MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)