Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在appsettings.json asp.net core中加密/解密字段/对象_C#_Asp.net_Asp.net Core - Fatal编程技术网

C# 如何在appsettings.json asp.net core中加密/解密字段/对象

C# 如何在appsettings.json asp.net core中加密/解密字段/对象,c#,asp.net,asp.net-core,C#,Asp.net,Asp.net Core,我想对appsetings.json中的连接字符串进行加密并解密,然后再将其传递给ConfigureServices方法中的options.UseSqlServer(配置[“数据库:连接”])。不幸的是,互联网上关于asp.net内核的内容并不多。连接字符串如下所示: "Database": { "Connection": "string" } 我可能也希望其他设置对象也是如此,以下是我环顾四周的结果,但我想我迷路了。任何建议,高度赞赏。多谢各位 public class

我想对appsetings.json中的连接字符串进行加密并解密,然后再将其传递给ConfigureServices方法中的options.UseSqlServer(配置[“数据库:连接”])。不幸的是,互联网上关于asp.net内核的内容并不多。连接字符串如下所示:

    "Database": {
    "Connection": "string"

  }
我可能也希望其他设置对象也是如此,以下是我环顾四周的结果,但我想我迷路了。任何建议,高度赞赏。多谢各位

public class CustomConfigProvider : ConfigurationProvider, IConfigurationSource
{
    public CustomConfigProvider()
    {

    }

    public override void Load()
    {
        Data = UnencryptMyConfiguration();
    }

    private IDictionary<string, string> UnencryptMyConfiguration()
    {
        // do whatever you need to do here, for example load the file and unencrypt key by key
        //Like:
        var configValues = new Dictionary<string, string>
        {
            {"Database", "string"}

        };
        return configValues;
    }

    private IDictionary<string, string> CreateAndSaveDefaultValues(IDictionary<string, string> defaultDictionary)
    {
        var configValues = new Dictionary<string, string>
        {
            {"Database", "string"},

        };
        return configValues;
    }
    public IConfigurationProvider Build(IConfigurationBuilder builder)
    {
        return new CustomConfigProvider();
    }
}
公共类CustomConfigProvider:ConfigurationProvider,IConfigurationSource
{
公共CustomConfigProvider()
{
}
公共覆盖无效负载()
{
数据=未加密配置();
}
私有IDictionary未加密配置()
{
//在这里执行您需要执行的任何操作,例如加载文件并逐个密钥取消加密
//比如:
var configValues=新字典
{
{“数据库”,“字符串”}
};
返回配置值;
}
专用IDictionary CreateAndSaveDefaultValues(IDictionary defaultDictionary)
{
var configValues=新字典
{
{“数据库”,“字符串”},
};
返回配置值;
}
公共IConfigurationBuilder生成(IConfigurationBuilder)
{
返回新的CustomConfigProvider();
}
}

尝试搜索“c#encryption example”是否可能重复您要隐藏此数据的原因?如果应用程序本身包含“解密”所需的所有内容,则您“发明”的任何算法都不会保护此数据。应用程序安装在本地IIS上,应用程序从本地网络访问SQL server。我在appsettings.json中有连接字符串,我想加密连接部分。有什么方法可以做到这一点吗?这里的问题是如何从appsettings.json文件进行加密,而不是如何进行简单的字符串加密。通过框架实现这一点并不简单。说这是重复是不真实的。请尝试搜索“c#encryption example”可能的重复,以了解您为什么要隐藏此数据?如果应用程序本身包含“解密”所需的所有内容,则您“发明”的任何算法都不会保护此数据。应用程序安装在本地IIS上,应用程序从本地网络访问SQL server。我在appsettings.json中有连接字符串,我想加密连接部分。有什么方法可以做到这一点吗?这里的问题是如何从appsettings.json文件进行加密,而不是如何进行简单的字符串加密。通过框架实现这一点并不简单。说这是重复是不诚实的。