如何触发重置密码?

时间:2012-09-30 12:47:48

标签: asp.net sql tsql asp.net-membership

我在Microsoft .NET 4.0环境中工作。 在我的应用程序中,我使用户能够获得新的自动密码。 所以我在我的.cs文件中使用了方法:

MembershipUser user = Membership.GetUser();
user.ResetPassword();

我想触发重置密码,表示:当密码更改为自动时 一,电子邮件将使用新密码(从user.ResetPassword()返回)发送到用户的电子邮件地址。

我使用标准的会员数据库表。

我写了以下触发器:

CREATE TRIGGER MembershipChangePass ON aspnet_Membership
AFTER UPDATE,DELETE
AS
BEGIN

DECLARE @user uniqueidentifier
DECLARE @email nvarchar(256)

SELECT @user = (SELECT UserId FROM UPDATED)
SELECT @email =(SELECT LoweredEmail FROM aspnet_Membership
            WHERE @user=UserId)

EXEC xp_sendmail @email, ??? 

END
GO    
  1. 问题是如何获得??? - 我创建的新自动密码 方法:user.ResetPassword();
  2. 我是否可以将TRIGGER定义为仅与user.ResetPassword()一起使用,而不是与其他 方法(如:(user.ChangePassword(...))?
  3. 也许有另一种简单的方法来触发重置密码?
  4. 谢谢。

1 个答案:

答案 0 :(得分:1)

ResetPassword()方法返回您可以抓取并发送给用户的新密码

string newPassword = user.ResetPassword();

string toAddr = "user email here";
string subject = "Password reset notification";
string body = "Your new password is "+newPassword;

//mail.Send(fromAddr, toAddr, subject, body);