MVC 5电子邮件确认

时间:2014-05-09 13:04:48

标签: c# asp.net email asp.net-mvc-5

我一直在寻找各种教程,并发现其中一眼看上去很理想,但我在实施中遇到了一些问题。有人可以帮我解决以下问题吗?

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)。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

希望我不会太迟;)
我在同一个博客上遇到了完全相同的问题。 您必须按照Andreas的评论中的说明安装更多软件包。 在程序包管理器控制台中运行此命令:

Install-Package postal -Version 0.9.2

这样您就可以使用“邮政”参考来解析电子邮件。

如果用以下内容替换你的return语句,你的“ShortGuid”问题似乎也解决了:

return ShortGuid.NewShortGuid();

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