我正在寻找DpapiDataProtectionProvider的替代方案,因为它使用机器密钥,并且用户请求从其他应用程序而不是主MVC产品重置密码,令牌总是无效的。
我有一个ASP.net MVC应用程序和一个API应用程序。他们都使用相同的令牌提供商密码,如下所示:
var provider = new DpapiDataProtectionProvider("MyWeb");
appManager.UserTokenProvider = new DataProtectorTokenProvider<ApplicationUser>(provider.Create("MyWebToken"));
DpapiDataProtectionProvider依赖于机器密钥,因此当使用电子邮件中的链接时,令牌无效。我可以使用什么替代方案?
感谢
对于有同样问题的人,我最终使用了MachineKeyProtectionProvider,就像这里提供的这个解决方案一样,我在startUp:中包含了这一行
app.SetDataProtectionProvider(new MachineKeyProtectionProvider());
我在web.config文件中添加了机器密钥。