繁体   English   中英

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

[英]Email Confirmation ASP.NET Identity 2 OWIN MVC and API Invalid Token

我正在尝试使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);

这篇文章有帮助。 ASP.NET Identity 2-UserManager.ConfirmEmail在生产中失败

为了解决这个问题,我为api和mvc项目将匹配的machineKey添加到web.config中。 电子邮件验证开始工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM