代码之家  ›  专栏  ›  技术社区  ›  Bill Martin

Forms Auth pwd recovery—我希望用户在web上重置它,而不是发送电子邮件

  •  2
  • Bill Martin  · 技术社区  · 17 年前

    问题1-

    有没有办法通过编写自定义代码或使用预构建组件来询问他们安全性问题并进行比较。另外,在他们重置密码后,我如何设置密码?

    问题2-

    谢谢

    1 回复  |  直到 17 年前
        1
  •  6
  •   JC.    17 年前

    如果您使用的是asp.net窗体身份验证,则它已经为用户提供了使用安全问题重置密码的机制。这可以在Web.config中配置,并与密码恢复控件(ASP.net登录控件的一部分)一起使用。

    在web.config的“成员资格提供程序”部分下设置:

    要求问题与解答

    下面是使用密码恢复控件的示例代码:

      <asp:PasswordRecovery ID="PasswordRecovery1" runat="server">
      <QuestionTemplate>
                    <h2>Forgot Password</h2>
                    Hello <asp:Literal ID="UserName" runat="server"></asp:Literal><br />
                    Please answer your password question : <br />
                    <asp:Literal ID="Question" runat="server"></asp:Literal>
                    <asp:TextBox ID="Answer" runat="server"></asp:TextBox><br />
                     <asp:Button ID="SubmitButton" runat="server" Text="Send Answer By Mail" 
    CommandName="Submit"/><br />
                      <asp:Literal ID="FailureText" runat="server"></asp:Literal>
        </QuestionTemplate>
        </asp:PasswordRecovery>
    

    有关使用ASP.net登录控件的详细信息,请转到 http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/login/default.aspx

    至于不发送电子邮件,您可以通过在密码恢复控件中添加OnSendingMail=“CancelEmail”来取消电子邮件,然后像下面那样添加代码,然后在屏幕上显示新的重置密码。

    Sub CancelEmail(ByVal sender As Object, ByVal e As MailMessageEventArgs)
            e.Cancel = True
    End Sub