2009-08-28 104 views
4

我想在共享主機環境中的web.config文件中加密連接字符串。在共享主機上加密web.config

我已經閱讀了MSDN上關於該主題的大多數文章(http://msdn.microsoft.com/en-us/library/53tyfkaw.aspx),並得出結論:我需要使用RSAProtectedConfigurationProvider,以便我可以將配置文件與密鑰容器導出到我們的共享主機提供商。但是,當我這樣做時,我收到一個錯誤「RSA密鑰容器無法打開。」我認爲這是因爲我需要授予對密鑰容器的aspnet帳戶的訪問權限,但是這是使用aspnet_regiis工具完成的,我無法使用該工具,因爲我在共享主機上。

所以我試圖在應用程序啓動時在global.asax中對其進行編程加密,但保存文件時出現權限錯誤 - 「加載配置文件時發生錯誤:訪問路徑'C:\ Inetpub \ xxx \ YYY \ 3acp98k.tmp」被拒絕。共享主機的限制,我想。

我不能運行ASPNET_REGIIS工具,它是一個共享的託管環境。

沒有人有任何想法,我怎麼可能加密連接字符串?

回答

1

您只需要使web.config可寫。共享主機可以完全訪問IIS用戶或者給你一些基於網絡的工具,或許在你的文件管理器中編輯權限。你不需要運行aspnet_regiis。

1

我看不出任何東西已被標記爲答案,所以我會假設你沒有得到解決方案。 只是一個想法 - 但如果唯一的問題是,您的應用程序沒有寫配置文件的訪問權限(提示:您的FTP帳戶具有寫權限!) - 只需編寫一個讀取連接字符串設置的ASPX頁面,並顯示加密的Xml(你可能想把它放在密碼保護的位置)。

然後,所有你需要做的是:

  1. 創建未加密的web.config
  2. 上傳
  3. 訪問「顯示加密的ConnectionStrings網頁」
  4. 複製和粘貼在加密數據到您的本地web.config
  5. 用新的加密設置再次上傳web.config!
0

加密密鑰必須生成並保存在應用程序的文件夾中。每次讀取時,該網站都會使用該密鑰來加密和解密配置文件或配置節。默認提供程序是RSACriptoServiceProvider。如果配置文件是加密上傳的,但沒有提供加密密鑰,則它本身不能對其進行解密。每次配置部分被解密和加密時使用密鑰

0

aspnet_regiis工具用於使用-pef和-pdf選項進行加密和解密。使用相同的工具通過-pc選項創建加密密鑰,該選項在機器級別創建密鑰對