为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET Core中的加密配置

ASP.NET Core中的加密配置

MMTTMM 2019-12-27 14:54:44
随着web.config去了,什么是存储敏感信息(密码,令牌)使用ASP.NET核心内建一个web应用程序的配置首选的方法是什么?有没有一种方法可以自动获取加密的配置部分appsetttings.json?
查看完整描述

3 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

我不想编写自定义提供程序-太多的工作。我只是想利用JsonConfigurationProvider,所以我想出了一种对我有用的方法,希望它能对某人有所帮助。


public class JsonConfigurationProvider2 : JsonConfigurationProvider

{

    public JsonConfigurationProvider2(JsonConfigurationSource2 source) : base(source)

    {

    }


    public override void Load(Stream stream)

    {

        // Let the base class do the heavy lifting.

        base.Load(stream);


        // Do decryption here, you can tap into the Data property like so:


         Data["abc:password"] = MyEncryptionLibrary.Decrypt(Data["abc:password"]);


        // But you have to make your own MyEncryptionLibrary, not included here

    }

}


public class JsonConfigurationSource2 : JsonConfigurationSource

{

    public override IConfigurationProvider Build(IConfigurationBuilder builder)

    {

        EnsureDefaults(builder);

        return new JsonConfigurationProvider2(this);

    }

}


public static class JsonConfigurationExtensions2

{

    public static IConfigurationBuilder AddJsonFile2(this IConfigurationBuilder builder, string path, bool optional,

        bool reloadOnChange)

    {

        if (builder == null)

        {

            throw new ArgumentNullException(nameof(builder));

        }

        if (string.IsNullOrEmpty(path))

        {

            throw new ArgumentException("File path must be a non-empty string.");

        }


        var source = new JsonConfigurationSource2

        {

            FileProvider = null,

            Path = path,

            Optional = optional,

            ReloadOnChange = reloadOnChange

        };


        source.ResolveFileProvider();

        builder.Add(source);

        return builder;

    }

}


查看完整回答
反对 回复 2019-12-27
  • 3 回答
  • 0 关注
  • 885 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信