我一直在閱讀有關C#/ ASP應用程序的web.config的某些部分的加密和解密,並且我成功地爲我的應用程序加密了web.config的連接字符串。我的問題是解密。我使用標準代碼進行加密和解密,但它修改了web.config。本地它工作正常,因爲當它修改web.config我可以保存它,它仍然會運行,但是當我上傳到遠程服務器,然後它不起作用。Decrypting ConnectionString
我得到的錯誤是
配置錯誤說明:該請求提供服務所需的配置文件的 處理過程中發生錯誤。 請查看下面的具體錯誤細節,並適當修改您的 配置文件。
解析器錯誤消息:使用提供者 'RsaProtectedConfigurationProvider'解密失敗。 壞數據
加密
try
{
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
ConfigurationSection section = config.GetSection("connectionStrings");
if (!section.SectionInformation.IsProtected)
{
section.SectionInformation.ProtectSection("RSAProtectedConfigurationProvider");
config.Save();
}
catch (Exception ex)
{
}
解密
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.GetSection("connectionStrings");
if (section.SectionInformation.IsProtected)
{
section.SectionInformation.UnprotectSection();
config.Save();
}
我所說的解密方法,只要在頁面加載,但它不工作,它給了我:從提供錯誤信息上面的錯誤。
我根本沒有訪問主機服務器的權限。所以使用命令行不是一個選項。
只是好奇,爲什麼你需要手動解密應用程序中的連接字符串?只要訪問'WebConfigurationManager.ConnectionStrings',將會爲你解密配置文件,如果它被加密的話。 – csm8118
這只是交給我的設計。我正在修改代碼來做到這一點。我將C#代碼中的Connectionstring分配給ASP SQLDataSource。 – ReiRei
我試圖在後面的代碼中分配這個,但仍然出現錯誤。爲了測試目的,我在page_load期間爲其中一個asp頁面放置了代碼。 – ReiRei