我将多个.net core 2.2应用程序发布到了一个IIS实例。我的数据保护设置是
public static IDataProtectionBuilder AddCaDataProtection(this IServiceCollection services)
{
const string applicationName = "CertificationAuthority";
var registryKey = Registry.CurrentUser.CreateSubKey($@"SOFTWARE\{applicationName}\keys");
return services
.AddDataProtection()
.SetApplicationName(applicationName)
.ProtectKeysWithDpapi()
.PersistKeysToRegistry(registryKey);
}
每个应用程序都从其Startup.ConfigureServices
调用此静态方法。应用程序在同一个Windows用户帐户下的单独池中运行。虽然,当一个应用程序尝试验证另一应用程序中生成的数据保护令牌时,验证失败并显示InvalidToken结果。
我在做什么错了?
PS。我正是想做的是在一个应用中使用UserManager.GenerateEmailConfirmationTokenAsync
生成代码,然后在另一个应用中使用UserManager.ConfirmEmailAsync
。
答案 0 :(得分:0)
问题的原因是应用程序池正在使用PoolIdentity凭据运行,实际上意味着每个池都有单独的用户配置文件