在 dotnet core 2.0 中实现自定义密钥存储库

Tim*_*les 2 asp.net-core-mvc asp.net-core

要在 dotnet core 1.1 中管理 Cookie 的 DataProtection,一种推荐的方法是将 IXmlRepository 实现为自定义密钥存储提供程序,并在 Startup.cs 中按如下方式进行连接:

services.AddSingleton<IXmlRepository>(new MyCustomXmlRepository());
Run Code Online (Sandbox Code Playgroud)

升级到 dotnet core 2.0 后,GetAllElements()不再在我的存储库中调用,并且HttpContext.User.Identity.IsAuthenticated始终为 false。

这些文档总是含糊其辞(https://learn.microsoft.com/en-us/aspnet/core/security/data-protection/implementation/key-storage-providers),但仍然暗示这种方法仍然有效。

我缺少什么?

小智 6

你可以试试这个:

using Microsoft.AspNetCore.DataProtection.KeyManagement;

services.Configure<KeyManagementOptions>(options =>
{
    options.XmlRepository = new MyCustomXmlRepository();
});
Run Code Online (Sandbox Code Playgroud)

来源: https: //github.com/aspnet/DataProtection/issues/251