2014-09-28 109 views
1

我有一個Asp.net MVC應用程序使用VS.Net2013在我webconfige文件我都連接字符串條是這樣的:保護連接字符串中Asp.net MVC

<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「EncryptDemo」-app「/」-pe「connectionStrings」)

+0

嘗試此集成安全= True而不是此用戶id = general; password = abc123456「 – 2014-09-28 07:33:32

回答

3

如果你不想要你的話,你可以做2件基本的事情密碼在配置文件中:

  1. 使用Windows身份驗證。這應該始終是您首選的方法,除非有一些原因導致您無法使用Windows身份驗證,並且您不得不使用SQL身份驗證

  2. 加密連接字符串。由於您不能使用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拍攝,你可以在那裏找到更多信息。

+0

我有另一個問題Request.ApplicationPath不起作用對於我 – Shahram 2014-09-28 09:02:41

+0

如果請求不在請求的範圍內,使用'「/」'而不是'Request.ApplicationPath' – dotnetom 2014-09-28 09:13:49

+0

Thankyou。它的工作原理 – Shahram 2014-09-28 09:39:54