我有两个Web应用程序,WCF和MVC共享相同的数据库。我正在使用Aspnet身份识别2.0电子邮件确认错误无效令牌AspNet身份
注册新用户时,会创建确认令牌并向用户发送电子邮件。创建令牌,发送电子邮件大多是在WCF中完成的,验证是在MVC应用程序中完成的。
var code = UserManager.GenerateEmailConfirmationToken(user.Id);
string.Format("{0}/Account/ConfirmEmail?userId={1}&code={2}", WebsiteUrl,
HttpUtility.UrlEncode(user.Id), HttpUtility.UrlEncode(codeId));
我使用相同的数据保护提供
在WCF
var provider = new Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider("MyTestApplication");
UserManager.UserTokenProvider =
new Microsoft.AspNet.Identity.Owin.DataProtectorTokenProvider<ApplicationUser>(
provider.Create("UserToken"))
{
TokenLifespan = TimeSpan.FromDays(7)
};
在MVC
var dataProtectionProvider = new Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider("MyTestApplication");
manager.UserTokenProvider = new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("UserToken"))
{
TokenLifespan = TimeSpan.FromDays(7)
};
}
来源:Make ASP.NET Identity 2.0 Email confirm token work for WCF and MVC
现在我的问题
工作正常,在本地主机和质量保证。本地主机上的SSL也测试过。
生产失败(使用SSL)。从WCF生成令牌并在MVC中验证失败。
- 在同一应用程序中生成和验证作品。
这是怎么发生的invalid token
错误?与web.config
有什么关系?
谢谢! 'HttpUtility.UrlEncode'为我做了诀窍,已经配置了machineKey。对于其他关于machineKey,这也是一个很好的答案,帮助我生成:http://stackoverflow.com/questions/23455579/generating-reset-password-token-does-not-work-in-azure-website/23661872 #23661872 – CularBytes