Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
电子邮件确认MVC中的ASP.NET标识2 OWC和API无效令牌_Asp.net_Asp.net Mvc_Asp.net Web Api_Owin_Asp.net Identity 2 - Fatal编程技术网

电子邮件确认MVC中的ASP.NET标识2 OWC和API无效令牌

电子邮件确认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

我正在尝试让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);
//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。电子邮件验证开始工作