net core 2.2, совместное использование токенов защиты данных между приложениями - PullRequest
0 голосов
/ 21 мая 2019

Я получил несколько приложений .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 в другом.

1 Ответ

0 голосов
/ 21 мая 2019

Причиной проблемы было то, что пулы приложений работали с учетными данными PoolIdentity, что фактически означает отдельный профиль пользователя для каждого пула

...