Элемент управления Login
Элемент управления Login упрощает создание страницы входа для аутентификации с помощью форм в сочетании с Membership API. Он предоставляет готовый к применению пользовательский интерфейс, запрашивающий имя и пароль пользователя и предлагающий кнопку для входа пользователя. "За кулисами" он инкапсулирует функциональность, которая была описана в предыдущей статье: проверку удостоверений пользователей через Membership API и инкапсуляцию базовой функциональности аутентификации с помощью форм, такой как перенаправление к изначально запрошенной странице в защищенной области приложения после успешного входа.
Это значит, что Login инкапсулирует такие вещи, как Membership.ValidateUser() или FormsAuthentication.RedirectFromLoginPage(), поэтому писать этот код самостоятельно не придется. На рисунке ниже показан элемент управления Login в действии:
Всякий раз, когда пользователь щелкает на кнопке Log In (Войти), элемент управления автоматически проверяет имя и пароль, применяя для этого функцию Membership.ValidateUser(), а затем вызывает FormsAuthenication.RedirectFromLoginPage(), если проверка прошла успешно. Все опции элемента управления Login влияют на ввод, доставляемый им в эти метода. Например, если отметить флажок Remember me next time (Запомнить учетные данные), он передаст значение true в параметре createPersistentCookie метода RedirectFromLoginPage(). Поэтому FormsAuthenticationModule создает постоянный cookie-набор.
"За кулисами" Login представляет собой составной элемент управления ASP.NET. Он полностью расширяем - в том смысле, что позволяет переопределять любые стили компоновки и свойства, а также перехватывать генерируемые события для переопределения его поведения по умолчанию. Если оставить элемент управления без изменений, как он есть, и не перехватывать никаких событий, то он автоматически будет использовать поставщик членства, сконфигурированный для приложения.
Простейшая форма элемента управления Login на странице выглядит следующим образом:
Для изменения внешнего вида элемента управления Login предназначено несколько свойств. Можно применять разные установки стилей, как показано ниже:
Кроме того, для настройки внешнего вида Login можно использовать классы CSS. Каждое свойство стиля, поддерживаемое элементом управления Login, включает свойство CssClass. Как и в случае любого другого элемента управления ASP.NET, это свойство позволяет указать имя класса CSS, который был добавлен ранее к веб-сайту. Предположим, что в проект добавлена следующая таблица стилей CSS с именем файла MyStyles.css:
MyLoginTextBoxStyle { cursor: pointer; background-color: yellow; text-align: center; padding:6px; border: dotted black; font-family: Verdana; vertical-align: middle; } .Login { display:inline-block; } .Title { padding: 6px; }
Этот файл стиля можно включить в страницу входа, чтобы иметь возможность использовать стиль для элемента Login:
В таблице ниже перечислены стили, поддерживаемые элементом управления Login. Каждый стиль работает одним и тем же способом. Свойства шрифта и цвета можно устанавливать непосредственно или применять свойство CssClass для указания нужного класса CSS:
CheckBoxStyle | Определяет свойства стиля для флажка Remember me next time (Запомнить учетные данные) |
FailureStyle | Определяет стиль для текста, который отображается а случае неудачного входа |
HyperLinkStyle | Элемент управления Login позволяет определить несколько типов гиперссылок, например, на страницу начальной регистрации. Этот стиль задает внешний вид таких гиперссылок |
InstructionTextStyle | Элемент управления Login позволяет указать текст справки, отображаемый непосредственно в нем самом. Этот стиль задает внешний вид этого текста |
LabelStyle | Определяет стиль для меток User Name (Имя пользователя) и Password (Пароль) |
LoginButtonStyle | Определяет стиль кнопки входа |
TextBoxStyle | Определяет стиль для текстовых полей User Name (Имя пользователя) и Password (Пароль) |
TitleTextStyle | Определяет стиль текста заголовка для элемента управления Login |
ValidatorTextStyle | Определяет стили для элементов управления, используемых для проверки имени и пароля пользователя |
Пользовательский интерфейс элемента Login настраивается не только через эти стили; другие дополнительные свойства предназначены для определенных частей содержимого элемента управления, таких как кнопка Log In, которые также позволяют настроить графический интерфейс.
Например, можно выбрать текст, отображаемый на кнопке входа, либо вообще отображать вместо этой кнопки (как установлено по умолчанию) гиперссылку. Более того, к элементу управления Login можно добавить несколько гиперссылок, таких как ссылка на страницу справки или на страницу регистрации. Обе страницы должны быть открыты для анонимного доступа, поскольку справка должна предлагаться также анонимным пользователям (вспомните, что если кто-то видит элемент управления Login, то он - потенциально анонимный пользователь). Чтобы включить дополнительные ссылки в Login, модифицируйте ранее показанное определение следующим образом:
...
Этот код приводит к отображению двух дополнительных ссылок - на страницу справки и на страницу первоначальной регистрации, а также добавляет текст краткой инструкции под заголовком элемента Login:
Стили, описанные ранее, применимы и к этим свойствам. В таблице ниже описаны важные свойства для настройки элемента управления Login:
Текст сообщений | |
TitleText | Текст, отображаемый в заголовке элемента управления |
InstructionText | Это свойство уже использовалось в предыдущем фрагменте кода. Содержит текст, отображаемый ниже заголовка элемента управления |
FailureText | Текст, отображаемый элементом управления Login, если попытка входа не удалась |
UserNameLabelText | Текст, отображаемый в виде метки перед текстовым полем имени пользователя |
PasswordLabelText | Текст, отображаемый в виде метки перед текстовым полем пароля пользователя |
UserName | Начальное значение, заполняющее текстовое поле имени пользователя |
UsernameRequiredErrorMessage | Сообщение об ошибке, отображаемое, если пользователь не ввел имя |
PasswordRequiredErrorMessage | Сообщение об ошибке, отображаемое, если пользователь не ввел пароль |
Кнопка входа | |
LoginButtonText | Текст, отображаемый на кнопке входа |
LoginButtonType | |
LoginButtonImageUrl | Если кнопка входа представлена как графическое изображение, необходимо указать URL, где находится это изображение |
Страница входа | |
DestinationPageUrl | Если попытка входа была успешной, элемент управления Login перенаправляет пользователя на эту страницу. По умолчанию это свойство пусто. При пустом значении используется инфраструктура аутентификации с помощью форм для перенаправления либо на исходную запрошенную страницу, либо на defaultUrl, сконфигурированный в web.config для аутентификации с помощью форм |
FailureAction | Определяет действие, которое элемент управления выполняет после неудачной попытки входа. Два допустимых варианта - Refresh и RedirectToLoginPage. Первое значение приводит к обновлению только текущей страницы, а второе - к перенаправлению на сконфигурированную страницу входа. Второй вариант полезен, если элемент управления Login используется где-то в другом месте, а не на странице входа |
VisibleWhenLoggedIn | Если установлено в false, то элемент управления автоматически скрывает себя, если пользователь уже вошел. Если установлено в true (по умолчанию), то элемент Login отображается, даже если пользователь совершил вход |
Настройка метки "Запомнить меня" | |
DisplayRememberMe | Позволяет показывать или скрывать флажок Remember me next time (Запомнить меня). По умолчанию это свойство установлено в true |
RememberMeSet | Определяет значение по умолчанию флажка Remember me next time. По умолчанию это свойство установлено в false, т.е. флажок не отмечен |
Страница регистрации | |
CreateUserUrl | Определяет гиперссылку на страницу веб-сайта, которая позволяет создавать (регистрировать) пользователя. Таким образом, это обычно используется для открытия пользователю доступа к странице первичной регистрации. Обычно при этом отображается элемент управления CreateUserWizard |
CreateUserText | |
CreateUserIconUrl | URL-адрес графического изображения, выводимого вместе с текстом гиперссылки CreateUserUrl |
Страница помощи | |
HelpPageUrl | URL-адрес для перенаправления пользователя на страницу справки |
HelpPageText | |
HelpPageIconUrl | URL-адрес значка, отображаемого вместе с текстом гиперссылки HelpPageUrl |
Страница восстановления пароля | |
PasswordRecoveryUrl | URL-адрес для перенаправления пользователя на страницу восстановления пароля. Эта страница применяется, когда пользователь забыл пароль. Обычно она отображает элемент управления PasswordRecovery |
PasswordRecoveryText | |
PasswordRecoveryIconUrl | URL-адрес значка, отображаемого вместе с текстом гиперссылки PasswordRecoveryUrl |
Как видите, благодаря всем этим свойствам элемент управления Login настраивается очень гибко. Но как вы, скорее всего, обратили внимание, определить какое-нибудь выражение для проверки достоверности ввода невозможно. Конечно, можно реализовать проверку достоверности на стороне сервера внутри процедур событий, предлагаемых элементом управления Login. Когда требуется добавить какие-то элементы к составному элементу управления Login, это не получится сделать через представленные выше свойства. Например, что если понадобится второе текстовое поле для надежной аутентификации со вторым паролем или пользовательским ключом доступа, как это делается на некоторых правительственных сайтах?
К счастью, подобно другим элементам управления, таким как GridView, элемент Login поддерживает шаблоны. С помощью шаблонов можно настраивать содержимое элемента управления Login без каких-либо ограничений. К нему можно добавлять любые новые элементы управления. Применяется специальный шаблон к элементу управления Login с помощью дескриптора LayoutTemplate :
Войти в систему
Имя пользователя: | |
Пароль: |
Подключение к системе
|
user.aspx
user
Лучшие статьи по теме |