Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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
.net app.config中的连接字符串。那么安全呢?_.net_Connection String_App Config - Fatal编程技术网

.net app.config中的连接字符串。那么安全呢?

.net app.config中的连接字符串。那么安全呢?,.net,connection-string,app-config,.net,Connection String,App Config,在app.config文件中放入带有密码的连接字符串真的是件好事吗 在我看来,app.config没有以任何方式进行加密,密码信息可以很容易地读取 我有一个应用程序,可以访问预期最终用户没有身份验证的数据库。使用组用户/密码。仅当当前windows用户在Active Directory组中时,应用程序才会启动。因此,一旦进入应用程序,用户就可以使用组用户连接到数据库 处理此类连接字符串的正确方法是什么?在源代码中隐藏它们 注意这是针对独立应用程序的,而不是ASP、IIS等 这对我很有效 (感谢乔

在app.config文件中放入带有密码的连接字符串真的是件好事吗

在我看来,app.config没有以任何方式进行加密,密码信息可以很容易地读取

我有一个应用程序,可以访问预期最终用户没有身份验证的数据库。使用组用户/密码。仅当当前windows用户在Active Directory组中时,应用程序才会启动。因此,一旦进入应用程序,用户就可以使用组用户连接到数据库

处理此类连接字符串的正确方法是什么?在源代码中隐藏它们

注意这是针对独立应用程序的,而不是ASP、IIS等

这对我很有效

(感谢乔恩·加洛韦——)


这是通过在应用程序第一次运行时加密exe配置文件来实现的。在安装过程中,我还没有找到这样做的方法,因此在应用程序第一次启动之前,配置文件是完全可读的。也许有人有主意…

您可以加密app.config或web.config文件的部分内容,有关更多信息,请参阅


具体来说,将介绍各种保护连接字符串的方法。

另外,您正在运行哪个版本的IIS?这是共享主机吗?或者您是否具有IIS的管理员访问权限?如果是,请在IIS管理器中查看您的IIS ASP.NET设置。您可以指定连接字符串。

您应该使用集成身份验证,并让AppPool用户在SQL上使用他需要执行的内容进行身份验证

这样,您就不需要在配置中提供密码,连接使用应用程序池用户对sql server进行身份验证


因此,您具有最高的安全性。

阅读MSDN文章时,我看到一条注释“连接字符串只能在加密的计算机上解密”。这是否意味着我无法分发app.config?app.config只能在执行加密的计算机上解密吗?这是正确的。您不能只是xcopy部署,您必须在之后运行脚本来设置配置参数,或者如果您创建了安装程序,则必须在安装后自定义操作中设置参数。
private void EncryptConfigSection()
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    ConfigurationSection section = config.AppSettings;
    if (section != null)
    {
        if (!section.SectionInformation.IsProtected)
        {
            if (!section.ElementInformation.IsLocked)
            {
                section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
                section.SectionInformation.ForceSave = true;
                config.Save(ConfigurationSaveMode.Full);
            }
        }
    }
}