电子邮件替换中的ASP.NET成员资格提供程

时间:2017-04-06 01:52:12

标签: asp.net vb.net

我们使用内置的asp.net会员提供程序来处理用户帐户。提供商创建的默认临时密码对我们的用户来说有点过于复杂,因此我使用以下代码生成了一个更容易键入的密码,以便他们可以重置密码。它可以完美地生成新密码,会员提供商正在使用它而不是复杂的密码。

以下是我的问题所在:当用户请求临时密码时,应用程序会将其通过电子邮件发送给他们。我试图用我生成的临时密码替换临时密码。您可以在下面的屏幕截图中看到我生成的密码附加到电子邮件的底部,但我无法获得<%Password%>被我的新人取代。我错过了什么?

 Public Sub PasswordRecovery1_SendingMail(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MailMessageEventArgs) Handles PasswordRecovery1.SendingMail
    Dim User As MembershipUser = Membership.GetUser(PasswordRecovery1.UserName)
    Dim msg As String = e.Message.Body 

    Dim oldpswd As String = User.ResetPassword()
    Dim newpass As String = GetPassword()

    msg.Replace("<%Password%>", newpass)

    msg += "<p>Your new password is: " & newpass & "</p>"
    User.ChangePassword(oldpswd, newpass)

    e.Message.Body = msg
End Sub

Email Template I'd like to update with newpass

Email that goes to user still has old password and new one at the bottom

1 个答案:

答案 0 :(得分:0)

替换了“&lt;%Password%&gt;” “&lt; -TemporaryPasswordArea&gt;”在我的模板中,然后将msg分配更改为以下内容,并在电子邮件中正确替换它。

msg = msg.Replace("<-TemporaryPasswordArea>", newpass)