|
https://technet.microsoft.com/en-us/library/ms143221(v=sql.105).aspx |
Локализация проектов. Аутентификация пользователей
Элементы управления группы 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