这是什么ASP.NET Core日志消息:Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager

时间:2018-09-20 11:54:31

标签: c# asp.net-core

我在每个应用程序启动时都拥有这个。

有人知道这是哪里来的吗?

  

信息:   Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager [0]         用户个人资料可用。使用'/Users/thomas/.aspnet/DataProtection-Keys'作为密钥存储库;键   不会被加密。

// run the web host
var PathToContentRoot = Directory.GetCurrentDirectory();
var Host = WebHost.CreateDefaultBuilder()
    .UseKestrel()
    .UseContentRoot(PathToContentRoot)
    .UseStartup<WebStartup>()
    .UseNLog()
    .Build();

我对“数据保护”,“密钥”等一无所知,也不需要任何形式的安全功能。

ConfigureServices部分中的代码是:

        // find all controllers
        var Controllers =
            from a in AppDomain.CurrentDomain.GetAssemblies().AsParallel()
            from t in a.GetTypes()
            let attributes = t.GetCustomAttributes(typeof(ControllerAttribute), true)
            where attributes?.Length > 0
            select new { Type = t };

        var ControllersList = Controllers.ToList();
        Logging.Info($"Found {ControllersList.Count} controllers");

        // register them
        foreach (var Controller in ControllersList)
        {
            Logging.Info($"[Controller] Registering {Controller.Type.Name}");
            Services
                .AddMvc()
                .AddJsonOptions(Options => Options.SerializerSettings.ContractResolver = new DefaultContractResolver())
                .AddApplicationPart(Controller.Type.Assembly);
        }

        // add signalR
        Services.AddSignalR();

这样做是为了允许使用外部组件中的控制器。

1 个答案:

答案 0 :(得分:1)

根据您使用的 ASP.NET 功能,可能会设置 Core Data Protection 中间件并将其添加到依赖项注入容器中。

这提供了一种存储敏感数据的机制。根据您在什么环境中运行,这些敏感数据将存储在不同的位置。在您的情况下,您收到的消息是它以纯文本形式存储在用户配置文件(系统上的文件夹)中(我假设是因为您在 Linux 上运行,因为它们默认在 Windows 上加密)。此 article 对存储敏感数据的默认位置进行了很好的描述。

在您的情况下,我怀疑是使用 SignalR 导致添加了核心数据保护中间件。添加它的另一个常见原因是调用

IServiceCollection.AddAuthentication