我的webconfige文件中有一个Asp.net MVC应用程序VS.Net2013我有连接字符串这样的部分:
<connectionStrings>
<add name="ConnectStrNL" connectionString="server=192.168.0.71\ins1;database=FNHProvider;MultipleActiveResultSets=true;persist security info=True;User ID=general;Password=123;" />
<add name="connectionStringGeneral" connectionString="server=192.168.0.254;database=NFS;MultipleActiveResultSets=true;persist security info=True;User ID=General;Password=*******;" />
</connectionStrings>
我想隐藏用户和每个人的数据库传递。我也有限制不使用这种方法(aspnet_regiis.exe -site&#34; EncryptDemo&#34; -app&#34; /&#34; -pe&#34; connectionStrings&#34;)
答案 0 :(得分:3)
如果您不希望密码出现在配置文件中,您可以执行以下两项基本操作:
使用Windows身份验证。这应该始终是您首选的方法,除非有一些原因导致您无法使用Windows身份验证并且您被迫使用SQL身份验证
加密连接字符串。由于您无法使用问题中提到的aspnet_regiis_exe
,因此可以从代码中加密该部分。以下代码应在应用程序开始时运行一次:
using System.Web.Configuration;
using System.Web.Security;
using System.Configuration;
public void EncryptConnString()
{
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.GetSection("connectionStrings");
if (!section.SectionInformation.IsProtected)
{
section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
config.Save();
}
}
代码取自this site,您可以在那里找到更多信息。