2017-02-28 73 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)