0

我們向客戶銷售Web應用程序,它包含一些第三方組件。這些組件需要授權密鑰才能工作,我們已將這些密鑰存儲在web.config中。由於我們不銷售源代碼或許可證,因此我們需要以某種方式加密該值。在打包的ASP.NET解決方案中加密Web.Config值

不,我知道你可以使用aspnet_regiis加密web.config部分,但我的理解是,這是在主機上完成的,並使用唯一的機器ID來進行加密。這意味着我只能在客戶端部署Web應用程序後執行加密

因爲我們無法控制預先加密此值的部署部分。實際上,當我們將應用程序移交給客戶端時,我們需要對其進行加密。

任何想法?

+1

您確定您與供應商有正確的授權安排嗎?如果您有許可證允許您銷售帶有嵌入式第三方組件的應用程序,則組件供應商應提供身份驗證解決方案。 – mellamokb 2012-03-27 15:40:39

+1

許可證密鑰應該是客戶的財產,而不是你的,因此不相關。分配您自己的或內部的許可證密鑰是一個壞主意。 – 2012-03-27 15:42:07

+0

@mellamokb - 我不是法律部門,但他們向我保證這是事實。 – 2012-03-27 15:42:31

回答

1

當您運行命令以不使用使用機器密鑰的默認加密機制時,您可以設置ProtectedConfigurationProvider,但將使用自定義密鑰容器進行加密。其中一個ProtectedConfigurationProvider是RsaProtectedConfigurationProvider,命令如下所示。詳情請參閱this & this

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" -prov "RsaProtectedConfigurationProvider" 
+1

您仍然有分發用於RSA加密的密鑰的問題。從技術上講,如果用戶有權訪問該密鑰,他們可以手動執行相同的解密以讀取web.config的內容。 – mellamokb 2012-03-27 15:53:50