1.打開記事本,然後將下面的代碼複製到一個新文件中。
<%@ Page Language="C#" %>
<% Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name); %>
2.(關鍵一步)運行cmd,執行以下
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITYNETWORK SERVICE"
說明:註冊默認的 RsaProtectedConfigurationProvider 的RSA 密鑰容器,
NetFrameworkConfigurationKey 是 RsaProtectedConfigurationProvider 的默認provider。
成功!
3.現在,可以加密web.config ,運行:
加密:aspnet_regiis -pe "connectionStrings" -app "/Myweb"
說明:"connectionStrings" 是要加密的節,"/Myweb"是的web目錄
解密:aspnet_regiis -pd "connectionStrings" -app "/Myweb"
成功!
4.這樣就可以在程序裡調用了:
string connstr= ConfigurationManager.ConnectionStrings["myConnstr"].ConnectionString.ToString();
同樣的,也可以用創建自己的RSA 密鑰容器,如下:
(1)創建 "MyKeys" 密鑰容器,運行:aspnet_regiis -pc "MyKeys" -exp
(2)在web.config裡加入以下:
<protectedData>
<providers>
<add name="MyProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0. 0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d0a3a, processorArchitecture=MSIL" keyContainerName="MyKeys" useMachineContainer="true" />
</providers>
</protectedData>
(3)授予帳戶對計算機級別的 "MyKeys" RSA 密鑰容器的訪問權限,運行:
aspnet_regiis -pa "MyKeys" "NT AUTHORITYNETWORK SERVICE"
(4)現在,可以加密web.config ,運行:
加密:aspnet_regiis -pe "connectionStrings" -app "/Myweb" -prov "MyProvider"
說明:"connectionStrings" 是要加密的節,"/Myweb"是的web目錄,"MyProvider" 自己密鑰容器
解密:aspnet_regiis -pd "connectionStrings" -app "/Myweb" -prov "MyProvider"
沒有留言:
張貼留言