2017-02-28 109 views
0

我使用ASPNET_REGIIS成功地在web.config中加密了connectionString節。然而,我已經在我的本地機器上完成了這項工作。ASPNET_REGIIS共享主機上的加密

當我嘗試在共享託管服務器上發佈網站時,我收到配置文件錯誤。

有什麼辦法可以使用ASPNET_REGIIS加密共享主機服務器而無需訪問物理服務器機器?

謝謝。

+0

在你不能做到這一點對自己和依靠服務提供商大多數情況下。給他們打個電話。 –

+0

他們建議我升級到虛擬服務器。是否有可能在虛擬服務器上安裝Visual Studio? –

回答

0

我找到了一個解決方案,可能不是最好的,但我覺得還行吧..

我加密的web.config一次,使用的第一功能。 我在每次通話時解密它。

public static void EncryptConnString() 
{ 
    Configuration config = WebConfigurationManager.OpenWebConfiguration("~"); 
    ConfigurationSection section = config.GetSection("connectionStrings"); 

    if (!section.SectionInformation.IsProtected) 
    { 
     section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider"); 
     config.Save(); 
    } 
} 

public static MySqlConnection DecryptConnString() 
{ 
    MySqlConnection conn = new MySqlConnection(); 
    Configuration config = WebConfigurationManager.OpenWebConfiguration("~"); 
    ConfigurationSection section = config.GetSection("connectionStrings"); 
    if (section.SectionInformation.IsProtected) 
    { 
     section.SectionInformation.UnprotectSection(); 
     conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["DatabaseName"].ConnectionString); 
     return conn; 
    } 
    else 
     return null; 
} 

(使用MySQL)