Основы ASP.NET 2.0

       

Элементы управления группы Login


Мы уже создавали формы регистрации. Это было только упражнение, так как элементы управления этой группы могут брать на себя регистрацию и авторизацию пользователей, восстановления пароля и другие функции, взаимодействуя при этом с системой Membership и Roles. Группа Login находится в панели инструментов.

Элемент управления LoginName позволяет показать имя пользователя:

Заходите еще, <asp:LoginName ID="FCLoginName" Runat="server" />

Отображаемый текст можно форматировать с помощью FormatString:

<asp:LoginName ID="HelloLoginName" Runat="server" FormatString="Hello, {0}" />.</p>

LoginStatus — это умный элемент управления. Если пользователь не аутентифицирован, отображается гиперссылка Login на страницу входа на сайт. Если пользователь авторизован, это ImageButton с командой Logout. Если ее нажать, то пользователь выходит из системы. Текст ссылок можно менять в свойствах LoginText и LogoutText или использовать изображения:

<asp:LoginStatus ID="LoginStatus1" runat="server" LoginText="Вход" LogoutText="Выход" /> <asp:LoginStatus ID="LoginStatus2" runat="server" LogoutAction="Redirect" LogoutPageUrl="~/Default.aspx" LoginImageUrl="~/Images/arrow_next.gif" LogoutImageUrl="Images/arrow_prev.gif" />

Нажатие на ссылку Logout в этом случае перенаправит пользователя на страницу Default.aspx.

Элемент управления LoginView состоит из двух шаблонов: AnonymousTemplate и LoggedInTemplate.


Который из них используется для отображения, зависит от того, просматривает ли страницу анонимный пользователь или авторизованный. На странице default.aspx Starter Kit это единственный элемент на странице Registration.aspx:

<asp:loginview id="LoginArea" runat="server"> <AnonymousTemplate> <asp:login id="Login1" runat="server"> <layouttemplate> <div class="login"> <h4>Login to Site</h4> <asp:label runat="server" id="UserNameLabel" CssClass="label" associatedcontrolid="UserName">User Name</asp:label> <asp:textbox runat="server" id="UserName" cssclass="textbox" accesskey="u" /> <asp:requiredfieldvalidator runat="server" id="UserNameRequired" controltovalidate="UserName" validationgroup="Login1" errormes- sage="User Name is required." tooltip="User Name is required." >*</asp:requiredfieldvalidator> <asp:label runat="server" id="PasswordLabel" CssClass="label" associatedcontrolid="Password">Password</asp:label> <asp:textbox runat="server" id="Password" textmode="Password" cssclass="textbox" accesskey="p" /> <asp:requiredfieldvalidator runat="server" id="PasswordRequired" controltovalidate="Password" validationgroup="Login1" tooltip="Password is required." >*</asp:requiredfieldvalidator> <div><asp:checkbox runat="server" id="RememberMe" text="Remember me next time"/></div> <asp:imagebutton runat="server" id="LoginButton" CommandName="Login" AlternateText="login" skinid="login" CssClass="button"/> or <a href="register.aspx" class="button"><asp:image id="Image1" runat="server" AlternateText="create a new account" skinid="cre- ate"/></a> <p><asp:literal runat="server" id="FailureText" enableview- state="False"></asp:literal></p> </div> </layouttemplate> </asp:login> </anonymoustemplate> <LoggedInTemplate> <h4><asp:loginname id="LoginName1" runat="server" format- string="Welcome {0}!" /></h4> </LoggedInTemplate> </asp:loginview>



Анонимному пользователю предоставляется возможность зайти или зарегистрироваться, а авторизованный видит приветствие со своим именем.

Кроме того, с помощью <RoleGroups> можно создавать шаблоны, которые будут показаны пользователям с определенными ролями:

<RoleGroups> </asp:RoleGroup> <asp:RoleGroup Roles="Moderator"> Вы можете удалять чужие сообщения. <ContentTemplate> </ContentTemplate> </asp:RoleGroup> <asp:RoleGroup Roles="ClubMember"> <ContentTemplate> Вы можете заходить в клубный форум. </ContentTemplate> </RoleGroups>

Шаблоны групп просматриваются по порядку, и показывается тот из них, что найден первым из групп, в которые входит пользователь. Например, если она принадлежит к группам Moderator и ClubMember, будет показан шаблон Moderator. Роли можно перечислять через запятую, тогда шаблон применим ко всем указанным группам:

<asp:RoleGroup Roles="Moderator, Administrator">

Остальные элементы управления этой группы — формы и мастера — Login, PasswordRecovery, ChangePassword.

CreateUserWizard позволяет создавать пользователей, используя службу Membership. Естественно, в нем происходит валидация введенных данных. Например, длина пароля должна быть не меньше 7 знаков и в нем должен присутствовать хотя бы один символ — не буква и не цифра. Обязательно заполнение контрольного вопроса и ответа, по которым можно будет восстановить пароль, если он забыт, или изменить пароль:

ChangeUser


Содержание раздела