2

私は Microsoft .NET 4.0 環境で作業しています。私のアプリケーションでは、ユーザーが新しい自動パスワードを取得できるようにしています。したがって、.cs ファイルで次のメソッドを使用します。

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

パスワードのリセット時にトリガーしたいのは、つまり、パスワードが自動パスワードに変更されると、新しいパスワード (user.ResetPassword() から返される) を含む電子メールがユーザーの電子メール アドレスに送信されることです。

標準のメンバーシップ DB テーブルを使用します。

次のトリガーを書きました。

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 に答える