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