ASP.NET 身份中不使用机器密钥的 DpapiDataProtectionProvider 的替代方案

Alternative to DpapiDataProtectionProvider in ASP.NET Identity which does not use Machine Key

我正在寻找 DpapiDataProtectionProvider 的替代品,因为它使用机器密钥并且用户请求从其他应用程序而不是主要 MVC 产品重置密码,令牌始终无效。

我有一个 ASP.net MVC 应用程序和一个 API 应用程序。他们都使用相同的令牌提供者密码,如下所示:

var provider = new DpapiDataProtectionProvider("MyWeb");
        appManager.UserTokenProvider = new DataProtectorTokenProvider<ApplicationUser>(provider.Create("MyWebToken"));

DpapiDataProtectionProvider 依赖于机器密钥,因此当使用电子邮件中的 link 时令牌无效。我可以使用什么替代方案?

谢谢

对于遇到同样问题的任何人,我最终使用了 MachineKeyProtectionProvider,就像这个提供的解决方案 并且我在启动中包含了这一行:

app.SetDataProtectionProvider(new MachineKeyProtectionProvider());

并且我在 web.config 文件中添加了机器密钥。