Элементы управления LoginStatus и LoginView
102ASP.NET --- Безопасность в ASP.NET --- Элементы управления LoginStatus и LoginView
LoginStatus
LoginStatus - это простой элемент управления, который отображает либо ссылку для входа, если пользователь еще не вошел в систему, либо ссылку для выхода, если пользователь уже аутентифицирован. Ссылка для входа автоматически перенаправляет на сконфигурированную страницу входа, а ссылка для выхода автоматически вызывает метод FormsAuthentication.SignOut() для выхода пользователя. Этот элемент управления достаточно прост, а потому проста и его настройка:
<asp:LoginStatus ID="LoginStatus1" runat="server"
LoginText="Войти в систему"
LogoutText="Выйти"
LogoutPageUrl="~/MyLogin.aspx"
LogoutAction="Redirect" />
Элемент управления LoginStatus предлагает несколько свойств для настройки текста ссылок и URL-адресов для перенаправления, когда пользователь на них щелкает. Наиболее важные свойства перечислены в таблице ниже:
Свойство | Описание |
---|---|
LoginText | Текст, отображаемый, когда пользователь еще не вошел |
LoginImageUrl | URL-адрес значка ссылки для входа |
LogoutText | Текст, отображаемый, если пользователь уже аутентифицирован |
LogoutImageUrl | URL-адрес значка ссылки для выхода |
LogoutAction | Конфигурирует действие, выполняемое элементом управления, если пользователь щелкает на ссылке для выхода, которая отображается аутентифицированному пользователю. Допустимые значения - Refresh, Redirect и RedirectToLoginPage. Первый вариант обеспечивает просто обновление текущей страницы, второй - перенаправление на страницу, указанную в LogoutPageUrl, а последний - перенаправление на страницу входа |
LogoutPageUrl | Страница, на которую перенаправляется пользователь после щелчка на ссылке для выхода, когда свойство LogoutAction установлено в Redirect |
LoginView
Этот элемент довольно простой, но очень мощный. Он позволяет отображать различные наборы элементов управления для анонимных и аутентифицированных пользователей. Более того, он позволяет даже отображать разное содержимое в зависимости от ролей, которые назначены текущему пользователю. Более подробно роли и их связь с элементом управления LoginView рассматриваются позже. А пока будет показано, как отображать разное содержимое для анонимных и аутентифицированных пользователей.
Элемент управления LoginView - это шаблонный элемент управления с разными типами шаблонов - для анонимных пользователей, для аутентифицированных пользователей и для поддержки шаблонов на основе ролей. Внутрь этих шаблонов просто добавляются элементы управления для отображения в соответствующих ситуациях:
<asp:LoginView ID="LoginView1" runat="server">
<AnonymousTemplate>
<h2>Вы не можете добавить комментарий, т.к. не вошли в систему</h2>
</AnonymousTemplate>
<LoggedInTemplate>
<h2>Добавить комментарий: </h2>
<asp:TextBox ID="Comment" runat="server" Width="200" /><br />
<asp:Button ID="Button1" runat="server" Text="Добавить" />
</LoggedInTemplate>
</asp:LoginView>
Этот элемент отображает некоторый простой текст для анонимных пользователей и текстовое поле с другим текстом и кнопку - для вошедших пользователей. Вдобавок этот элемент управления поддерживает два события, которые можно перехватывать для инициализации элементов разных шаблонов перед их отображением:
ViewChanging - инициируется непосредственно перед тем, как элемент управления отображает содержимое, определенное в другом шаблоне.
ViewChanged - инициируется сразу после того, как элемент управления изменит содержимое для отображения с одного шаблона на другой.