电子邮件确认ASP.NET身份2 OWIN MVC和API无效令牌

时间:2014-12-17 02:51:25

标签: asp.net asp.net-mvc asp.net-web-api owin asp.net-identity-2

我试图让ASP.NET Identity 2.0用于电子邮件验证。用户帐户创建成功,并发送验证电子邮件。

如果我在web api控制器中验证令牌,它可以工作。 如果我在mvc控制器中验证令牌,它不会,我不确定我的错误。

从MVC控制器返回的错误是"无效的令牌" api和mvc在不同的端口上运行,并存在于不同的程序集中。

以下是相关部分的一些代码片段。

//Startup.cs
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);

//ApplicationUserManager.cs

manager.EmailService = new EmailService();
var dataProtectionProvider = options.DataProtectionProvider;
manager.UserTokenProvider = new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity"));



//MVC Controller

public ApplicationUserManager UserManager
        {
            get { return this._userManager ?? this.HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); }
            private set { this._userManager = value; }
        }
...
UserManager.ConfimEmailAsync(userid,ConfirmationCode)


//Web API Controller
var result = this.UserManager.ConfirmEmail(model.UserId, model.ConfirmationToken);

1 个答案:

答案 0 :(得分:0)

这篇文章有帮助。 ASP.NET Identity 2 - UserManager.ConfirmEmail Fails In Production

要修复我为api和mvc项目添加了匹配的machineKey到web.config。电子邮件验证开始有效。