2

我在 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 回答 1

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);
于 2012-09-30T15:10:57.970 回答