簡體   English   中英

如何為實體框架和Windows窗體加密ConnectionString

[英]How To Encrypt ConnectionString for Entity Framework and Windows Forms

我正在編寫Windows窗體應用程序以進行公共分發,該應用程序利用雲數據庫。 我需要加密已發布的app.config文件中的連接字符串。 我為此項目使用Entity Framework和.net 4.5。 根據我所讀的內容(可能是錯誤的),EF不會自動解密連接字符串。 我該怎么做?

您應該使用Windows身份驗證。 如果為用戶提供了一個加密的連接字符串,並希望他們將其以未加密的形式傳遞回去,那么您就必須為他們提供一種基本上解密公用密鑰的方法,這是安全性。 您可能能夠對文件中的字符串進行加密,並使應用程序將其傳遞給WCF或REST服務,該服務包含私鑰,解密,建立與數據庫的連接以及對數據庫進行查詢。 但這仍然使加密后的值與密碼一樣好。 這就是為什么您需要使用Windows身份驗證,以便用戶可以提供其憑據並對其進行授權的原因。 這樣,您可以控制誰在訪問數據庫,並且用戶是唯一有權訪問其密碼的人(理論上無論如何)。

這也是為什么ASP.Net具有此功能,而WinForm應用程序卻沒有ASP.Net應用程序在受控服務器環境中運行的原因,在這種環境下,他們可以訪問私鑰而不與世界共享。

要擴展我的評論使其成為答案,可以使用aspnet_regiis 將您的app.config重命名為web.config,然后按照中所述進行操作

加密將重新分發的App.config文件中的部分和/或設置

完成后,重新命名文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM