2010-11-28 4 views
1

Я пытаюсь закодировать страницу администрирования пользователя, но API Membership не позволяет многое с точки зрения прямых обновлений, например. пароль. Есть ли контроль, который я могу использовать для этого, возможно?Обновления для пользователей-членов

ответ

1

Чтобы ответить на конкретный вопрос об обновлении пароля вопрос:

Для вашей страницы .aspx или .ascx управления вы можете использовать следующую разметку:

<p style="margin-bottom: 20px;"> 
    A security question is used to assist you in logging in. 
    Because of this, we ask that you provide your password for confirmation 
    of wanting to change the security question associated with your account. 
</p> 
<ul class="formFields"> 
    <li> 
     <label> 
      Question</label><asp:TextBox ID="uxNewQuestion" runat="server" /> 
     <asp:RequiredFieldValidator ID="uxNewRequired" 
      runat="server" ControlToValidate="uxNewQuestion" 
      ErrorMessage="New Question is required." 
      ToolTip="New Question is required." 
      ValidationGroup="ChangeQuestion">*</asp:RequiredFieldValidator> 
    </li> 
    <li> 
     <label> 
      Answer</label><asp:TextBox ID="uxNewAnswer" runat="server" /> 
     <asp:RequiredFieldValidator ID="uxConfirmRequired" 
      runat="server" ControlToValidate="uxNewAnswer" 
      ErrorMessage="Must Confirm Question" 
      ToolTip="Must Confirm Question" ValidationGroup="ChangeQuestion"> 
      *</asp:RequiredFieldValidator> 
    </li> 
    <li> 
     <label> 
      Your Password:</label> 
     <asp:TextBox ID="uxPassword" runat="server" TextMode="Password"> 
      </asp:TextBox> 
     <asp:RequiredFieldValidator ID="uxPasswordRequired" 
      runat="server" ControlToValidate="uxPassword" 
      ErrorMessage="Must Provide Correct Password" 
      ToolTip="Must Provide Correct Password" 
      ValidationGroup="ChangeQuestion">*</asp:RequiredFieldValidator> 
    </li> 
</ul> 
<p> 
    <asp:Button ID="uxSave" runat="server" Text="Save Security Question" 
     OnClick="uxSave_Click" 
     ValidationGroup="ChangeQuestion" /> 
    <asp:Button ID="Button1" runat="server" Text="Cancel" 
     OnClick="uxCancel_Click" CausesValidation="False" /></p> 
<div style="margin-top: 20px;"> 
    <asp:Literal ID="uxFailureText" runat="server" 
     EnableViewState="False"></asp:Literal> 
</div> 

Для кода позади вам нужно по крайней мере, это много кода:

MembershipUser user = Membership.GetUser(GuidUserID); 
string password = uxPassword.Text; 
string newquestion = uxNewQuestion.Text; 
string newanswer = uxNewAnswer.Text; 

if (user.ChangePasswordQuestionAndAnswer(password, newquestion, newanswer)) 
{ 
    Response.Redirect("~/Admin/Default.aspx", true); 
} 
else 
{ 
    uxFailureText.Text = string.Format("<p class='error'>There has been a 
     problem updating your security question.</p>"); 
} 

Если вы заметили, что вводный текст элемента управления говорит, что нам нужен пароль для подтверждения изменения. Это правильно, так как метод провайдера членства должен иметь текущий пароль, переданный вместе со старым и новым вопросом безопасности. Большинство паролей шифруются одним способом, поэтому я предоставлял этот элемент управления пользователю как тип управления самообслуживанием, а не административную сторону.

Удачи, и надеюсь, что это поможет некоторым.

+0

changepassword control не позволяет вам изменить пароль вопроса – 2010-11-28 16:27:43

Смежные вопросы