掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
在ASP.NET中新增了對web.config中的部分數(shù)據(jù)進行加密的功能,可以使用RSAProtectedConfigurationProvider和 DPAPIProtectedConfigurationProvider來加密,本文說明使用 RSAProtectedConfigurationProvidert和計算機級別的密鑰容器進行加密的步驟。

我們一直強調(diào)成都網(wǎng)站建設(shè)、成都網(wǎng)站制作對于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對待,選擇一個安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)網(wǎng)站建設(shè)公司不一定是大公司,創(chuàng)新互聯(lián)作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。
1. 首先確定要進行加密的web.config中的配置節(jié)是否可以加密
2. 創(chuàng)建RSA密鑰容器
3. 在web.config中標識要使用的密鑰容器
4. 對web.config進行加密
5. 授予對 RSA 密鑰容器的訪問權(quán)限
首先確定要進行加密的web.config中的配置節(jié)是否可以加密
ASP.NET 2.0支持對Web.config的部分配置節(jié)進行加密,以下配置節(jié)中的數(shù)據(jù)是不能進行加密的:
創(chuàng)建 RSA 密鑰容器
若要創(chuàng)建 RSA 密鑰容器,請使用 ASP.NET IIS 注冊工具 (Aspnet_regiis.exe) 及 –pc 開關(guān)。必須為密鑰容器指定一個名稱,該名稱標識應(yīng)用程序的 Web.config文件的 configProtectedData 節(jié)中指定的 RsaProtectedConfigurationProvider 所使用的密鑰容器。為確??梢詫?dǎo)出新創(chuàng)建的 RSA 密鑰容器,必須包括 -exp 選項。
例如,下面的命令創(chuàng)建一個名為 ABeenKeys 的 RSA 密鑰容器,該容器是可導(dǎo)出的計算機級密鑰容器。
aspnet_regiis -pc "ABeenKeys"–exp
Modify web.config to identify the key container
編輯Web.config文件以標識要使用的密鑰容器
在web.config中加以
在< configuration>中加入xmlns屬性
xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
使用名為 ABeenKeys 的計算機級 RSA 密鑰容器的 saProtectedConfigurationProvider。
> name="ABeenProvider" - type="System.Configuration.RsaProtectedConfigurationProvider, System.
Configuration, Version=2.0.0.0,Culture=neutral, processorArchitecture=MSIL"- keyContainerName="ABeenKeys"/>
Encrypt the
加密你的web.config文件中的配置節(jié)aspnet_regiis -pe "connectionStrings" -app "/connectionTest"
授予對 RSA 密鑰容器的訪問權(quán)限
可以通過以下代碼確定應(yīng)該給哪個用戶權(quán)限
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
默認情況下,RSA 密鑰容器受到所在服務(wù)器上的 NTFS 訪問控制列表 (ACL) 的嚴密保護。這樣能夠限制可以訪問加密密鑰的人員,從而增強加密信息的安全性。必須首先向 ASP.NET 應(yīng)用程序的進程標識授予對該 RSA 密鑰容器的讀取訪問權(quán)限,然后 ASP.NET 才能使用 RSA 密鑰容器??梢允褂?Aspnet_regiis.exe 工具及 -pa 開關(guān),向 ASP.NET 應(yīng)用程序的標識授予讀取 RSA 密鑰容器的權(quán)限。例如,下面的命令向 Windows Server 2003 NETWORK SERVICE 帳戶授予對名為 ABeenKeys 的計算機級 RSA 密鑰容器的讀取訪問權(quán)限:
aspnet_regiis -pa "ABeenKeys" "NT AUTHORITY\NETWORK SERVICE"
注意:
如果 RSA 密鑰容器是用戶級容器,必須以其 Windows 配置文件存儲了密鑰的用戶的身份登錄,并且必須包括 -pku 選項以授予對該用戶級 RSA 密鑰容器的訪問權(quán)限。
若要使用計算機配置中指定的默認 RsaProtectedConfigurationProvider,必須首先向應(yīng)用程序的 Windows 標識授予對名為 NetFrameworkConfigurationKey 的計算機密鑰容器的訪問權(quán)限,該計算機密鑰容器是為該默認提供程序指定的密鑰容器。例如,下面的命令向 NETWORK SERVICE 帳戶授予對默認 RsaProtectedConfigurationProvider 所使用的 RSA 密鑰容器的訪問權(quán)限。
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"
NetFrameworkConfigurationKey RSA 密鑰容器是 Aspnet_regiis.exe 工具所發(fā)出的命令的默認密鑰容器。因此上述命令也可以按以下方式發(fā)出:
aspnet_regiis -pa "NT AUTHORITY\NETWORK SERVICE"
【編輯推薦】

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流