mvc身份,发送带有额外参数的电子邮件确认

时间:2017-05-25 20:01:06

标签: c# asp.net-mvc identity

我正在使用此行

使用电子邮件确认开发mvc应用
 a = randint(0,1)

 color = 'Red' if a == 1 else color == 'Black'

 print(color)

但我想在该方法中发送额外的参数

 await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

的一部分
 public virtual Task SendEmailAsync(TKey userId, string subject, string body);

如何覆盖它或创建一个接受另一个参数的扩展名。?

2 个答案:

答案 0 :(得分:1)

简单 - 你没有。相反,将方法包装在您自己的方法中,该方法接收额外的参数并对其执行任何操作。

我假设你想使用'额外参数'来形成你的电子邮件正文或主题。

private void MyMethod(... whatever ...)
{
  // TODO: Use whatever
  await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking here");
}

答案 1 :(得分:0)

通常在MVC中使用其他来自User<TUser, TKey>的其他类,如“UserManager”,但它应该适用于任何情况。

所以它会是这样的:

public static class UserManagerExtension
{
            public static Task SendEmailAsync(this UserManager manager, 
        TKey userId, string subject, string body, string extraParameter)
            {
                        //Do something with parameter
                        return manager.SendEmailAsync(userId, subject, body);
            }
}

因此,如果UserManager从User<TUser, TKey>开始,只需将TKey类型替换为您的({默认为string),它应该有效。