电子邮件确认MVC中的ASP.NET标识2 OWC和API无效令牌
我正在尝试让ASP.NET Identity 2.0用于电子邮件验证。已成功创建用户帐户,并发送验证电子邮件 如果我在web api控制器中验证令牌,它就会工作。 如果我在mvc控制器中验证令牌,它不会,我不确定我错在哪里了 MVC控制器返回的错误为“无效令牌” api和mvc在不同的端口上运行,并存在于不同的程序集中 下面是相关部分的一些代码片段电子邮件确认MVC中的ASP.NET标识2 OWC和API无效令牌,asp.net,asp.net-mvc,asp.net-web-api,owin,asp.net-identity-2,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>(Applic
//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);
//Startup.cs
app.CreatePerOwinContext(ApplicationUserManager.Create);
//ApplicationUserManager.cs
manager.EmailService=新的EmailService();
var dataProtectionProvider=options.dataProtectionProvider;
manager.UserTokenProvider=新的DataProtectorTokenProvider(dataProtectionProvider.Create(“ASP.NET Identity”);
//MVC控制器
公共应用程序管理员用户管理器
{
获取{返回此。_userManager??this.HttpContext.GetOwinContext().GetUserManager();}
私有集{this.\u userManager=value;}
}
...
UserManager.confirimemailasync(userid,ConfirmationCode)
//Web API控制器
var result=this.UserManager.ConfirmEmail(model.UserId,model.ConfirmationToken);
这篇文章很有帮助
为了修复这个问题,我为api和mvc项目在web.config中添加了匹配的machineKey。电子邮件验证开始工作