none
Web.config可以加密嗎? RRS feed

  • 問題

  • 請問大家:

         因為我的連線字串是寫在web.config,因為裏面有寫密碼及帳號!

        請問web.config可以加密嗎?或者這個部份是要如何處理呢?

       謝謝回答。

    2006年5月30日 上午 01:12

解答

  • 加密的方法是利用 .NET Framework 提供的命令列工具:aspnet_regiis.exe。首先,開啟程式集 > Microsoft .NET Framework SDK v2.0 > SDK Command Prompt,接著輸入以下命令:

    代碼:
    aspnet_regiis -pef appSettings D:\Work\Demo\EncryptWebConfig


    aspnet_regiis 的 -pef 參數是用來加密某個絕對路徑下的 web.config 的某個 section,因此除了指定要加密的區段(此例為 appSettings),還要指定網站的絕對路徑 (此例為 D:\Work\Demo\EncryptWebConfig)。

    如果加密成功,會出現以下訊息:

    Encrypting configuration section...
    Succeeded!

    解密:

    如果要將之前加密過的組態檔內容還原成加密之前的資料,可以使用 aspnet_regiis -pdf 命令,例如:

    代碼:
    aspnet_regiis -pdf appSettings D:\Work\Demo\EncryptWebConfig


     

    2006年5月30日 上午 02:11
    版主

所有回覆

  • 可~透過ASP.NET IIS 註冊工具 (Aspnet_regiis.exe)

    詳細內容可參考MSDN文件
    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.cht/dv_fxtools/html/6491c41e-e2b0-481f-9863-db3614d5f96b.htm

     

    2006年5月30日 上午 02:03
  • 加密的方法是利用 .NET Framework 提供的命令列工具:aspnet_regiis.exe。首先,開啟程式集 > Microsoft .NET Framework SDK v2.0 > SDK Command Prompt,接著輸入以下命令:

    代碼:
    aspnet_regiis -pef appSettings D:\Work\Demo\EncryptWebConfig


    aspnet_regiis 的 -pef 參數是用來加密某個絕對路徑下的 web.config 的某個 section,因此除了指定要加密的區段(此例為 appSettings),還要指定網站的絕對路徑 (此例為 D:\Work\Demo\EncryptWebConfig)。

    如果加密成功,會出現以下訊息:

    Encrypting configuration section...
    Succeeded!

    解密:

    如果要將之前加密過的組態檔內容還原成加密之前的資料,可以使用 aspnet_regiis -pdf 命令,例如:

    代碼:
    aspnet_regiis -pdf appSettings D:\Work\Demo\EncryptWebConfig


     

    2006年5月30日 上午 02:11
    版主
  • 也可以自行開發encryption provider 去做客制化加密的動作

    like this...

     <configProtectedData defaultProvider="ConnStringProvider">
     <providers>
      <add name="ConnStringProvider" type="Configuration.ProtectedConnStringProvider,Configuration, Culture=neutral, PublicKeyToken=abcdffffffffff" 
      </providers>
      </configProtectedData>

     <connectionStrings configProtectionProvider="ConnStringProvider">
     <EncryptedData>
      <add name="TESTMYSQL" connectionString="provider=MySQL;Server=xxx;Database=ooo;Uid=root;Pwd=sa;" />
      </EncryptedData>
      </connectionStrings>

    加密的class 要自行implement

    2006年6月1日 上午 10:28
  • Hi Lolota

       你的意思是在已部署的環境上,做這個動作嗎?

       如果我是在開發環境,要部署上去時,就做好加密的動作,而不要在目的server上做這個動作,可行嗎?

       感謝回答。

    2006年6月12日 上午 08:16
  • 基本上不管您是要先加密再丟到Server或是在Server上直接加密都是可以的,因為只要Web.Config一變動就會網站就會重新Complie。
    2006年6月12日 上午 08:27
    版主