MVC 5电子邮件确认

本文关键字:确认 电子邮件 MVC | 更新日期: 2023-09-27 18:02:29

我一直在看各种教程,发现一个乍一看很理想的教程,但我在实现中遇到了一些问题。有人能帮我解决以下问题吗?

public class ApplicationUser : IdentityUser
{
    public Nullable<int> TitleId { get; set; }
    public Nullable<int> SexId { get; set; }
    public string Forename { get; set; }
    public string Surname { get; set; }
    public string Email { get; set; }
    public string ConfirmationToken { get; set; }
    public Nullable<bool> Active { get; set; }
    public DateTime? JoinDate { get; set; }
}

NVARCHAR(128(是否适用于字段ConfirmationToken?

private string CreateConfirmationToken()
{
    return ShortGuid.NewGuid();
}

在Visual Studio 2013中,单词ShortGuid用红色下划线,所以我猜我缺少了一个命名空间或类。

private void SendEmailConfirmation(string to, string username, string confirmationToken)
{
    dynamic email = new Email("RegEmail");
    email.To = to;
    email.UserName = username;
    email.ConfirmationToken = confirmationToken;
    email.Send();
}

dynamic email = new Email("RegEmail");行中,单词Email用红色下划线。也可以将其修改为使用smtp.yahoo.com,端口587使用NetworkCredential和EnableSsl吗?

private bool ConfirmAccount(string confirmationToken)
{
    ApplicationDbContext context = new ApplicationDbContext();
    ApplicationUser user = context.Users.SingleOrDefault(u => u.ConfirmationToken == confirmationToken);
    if (user != null)
    {
        user.Active = true;
        DbSet<ApplicationUser> dbSet = context.Set<ApplicationUser>();
        dbSet.Attach(user);
        context.Entry(user).State = EntityState.Modified;
        context.SaveChanges();
        return true;
    }
    return false;
}

在行DbSet<ApplicationUser> dbSet = context.Set<ApplicationUser>();中,DbSet部分与单词EntityState一样以红色下划线。

如需进一步参考,请参阅Kevin Junghans的原创文章(http://kevin-junghans.blogspot.co.uk/2013/10/adding-email-confirmation-to-aspnet.html)。

任何帮助都将不胜感激。

MVC 5电子邮件确认

希望我不会太迟;(
我在同一个博客上遇到了完全相同的问题。你必须按照Andreas的评论安装更多的软件包。在Package Manager控制台中运行此命令:

Install-Package postal -Version 0.9.2

这将使您能够使用"Postal"参考解析电子邮件。

此外,如果您将退货声明替换为以下内容,您的"ShortGuid"问题似乎已得到解决:

return ShortGuid.NewShortGuid();

我没有使用您的其余代码,但我想您也可以使用更多的软件包安装来解决这些问题;(