0

ASP.NET のユーザーにアクティベーション メールを送信したいのですが、ユーザー作成ウィザードを使用してユーザーを間接的に作成していることを指摘しておく必要があります。つまり、メンバーシップ メソッドを使用し、ユーザーを手動で作成します。私は何をすべきか?いくつかのコードで教えてください。

Membership.CreateUser(TextBox1.Text, result.ToString(), TextBox1.Text);
Roles.AddUserToRole(TextBox1.Text, "Reviewer");
4

2 に答える 2

0

独自の MembershipProvider を作成できます。メンバーシップ データ ストアとして SQL Server を使用している場合は、SqlMembershipProvider から継承し、その CreateUser メソッドをオーバーライドして、電子メール コードをカスタム メソッドに配置できます。web.config に次のようなものを配置して、カスタム メンバーシップ プロバイダーを使用するようにアプリに指示する必要があります。

<membership defaultProvider="MyMembershipProvider">
    <providers>
      <clear />
      <add name="MyMembershipProvider" type="MyMembershipProviderNamespace.MyMembershipProvider, MyMembershipProviderAssembly" />
    </providers>
  </membership>
于 2012-10-22T22:53:03.147 に答える
-1

残念ながら、ASP.Net メンバーシップには、ユーザーの作成後にすぐに使用できるアクティベーション メールを送信する機能がありません。

自分でユーザーを作成するので、その直後に SendEmail メソッドを簡単に呼び出すことができます。

ASP.Net 4 からの電子メールの送信 – C# サンプル コード

MembershipCreateStatus status;

var membershipUser = Membership.CreateUser(..., out status);

if (status == MembershipCreateStatus.Success)
  SendEmail(...);


public void SendEmail(MailAddress from, MailAddress to, 
  string subject, string body)
{
  var message = new MailMessage();

  message.From = from;
  message.To.Add(to);

  message.Subject = subject;
  message.Body = body;
  message.IsBodyHtml = true;

  var smtpClient = new SmtpClient("localhost");
  smtpClient.Send(message);
}
于 2012-10-22T23:12:40.917 に答える