|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在经过全球个人PC市场占有90%的微软对asp.net不断优化与整合后,asp.net与微软自身平台的动用上更加的高效,加上asp.net在应用上非常容易上手,相信asp.net仍会是最多客户选用的脚本语言,并会在未来几年继续领跑。asp.net|web|加密在asp.net2.0中新增了对web.config中的部分数据举行加密的功效,可使用RSAProtectedConfigurationProvider和DPAPIProtectedConfigurationProvider来加密,本文申明利用RSAProtectedConfigurationProvidert和盘算机级其余密钥容器举行加密的步骤。
1.起首断定要举行加密的web.config中的设置节是不是能够加密
2.创立RSA密钥容器
3.在web.config中标识要利用的密钥容器
4.对web.config举行加密
5.授与对RSA密钥容器的会见权限
Step1:起首断定要举行加密的web.config中的设置节是不是能够加密
ASP.NET2.0撑持对Web.config的部分派置节举行加密,以下设置节中的数据是不克不及举行加密的:
<processModel>
<runtime>
<mscorlib>
<startup>
<system.runtime.remoting>
<configProtectedData>
<satelliteassemblies>
<cryptographySettings>
<cryptoNameMapping>
<cryptoClasses>
Step2:创立RSA密钥容器
若要创立RSA密钥容器,请利用ASP.NETIIS注册工具(Aspnet_regiis.exe)及Cpc开关。必需为密钥容器指定一个称号,该称号标识使用程序的Web.config文件的configProtectedData节中指定的RsaProtectedConfigurationProvider所利用的密钥容器。为确保能够导出新创立的RSA密钥容器,必需包含-exp选项。
比方,上面的命令创立一个名为ABeenKeys的RSA密钥容器,该容器是可导出的盘算机级密钥容器。
aspnet_regiis-pc"ABeenKeys"Cexp
Step3:Modifyweb.configtoidentifythekeycontainer
编纂Web.config文件以标识要利用的密钥容器
在web.config中加以<configProtectedData>来设置密钥容器,利用名为ABeenKeys的盘算机级RSA密钥容器的
在<configuration>中到场xmlns属性
<configurationxmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">利用名为ABeenKeys的盘算机级RSA密钥容器的saProtectedConfigurationProvider。
<configProtectedData><providers><addname="ABeenProvider"type="System.Configuration.RsaProtectedConfigurationProvider,System.Configuration,Version=2.0.0.0,Culture=neutral,processorArchitecture=MSIL"keyContainerName="ABeenKeys"/></providers></configProtectedData>
Step4:Encryptthe<connectionStrings>sectionofyourweb.configfile
加密你的web.config文件中的设置节
>aspnet_regiis-pe"connectionStrings"-app"/connectionTest"
Step5:授与对RSA密钥容器的会见权限
能够经由过程以下代码断定应当给哪一个用户权限
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
默许情形下,RSA密钥容器遭到地点服务器上的NTFS会见把持列表(ACL)的周密回护。如许可以限定能够会见加密密钥的职员,从而加强加密信息的平安性。必需起首向ASP.NET使用程序的历程标识授与对该RSA密钥容器的读取会见权限,然后ASP.NET才干利用RSA密钥容器。可使用Aspnet_regiis.exe工具及-pa开关,向ASP.NET使用程序的标识授与读取RSA密钥容器的权限。比方,上面的命令向WindowsServer2003NETWORKSERVICE帐户授与对名为ABeenKeys的盘算机级RSA密钥容器的读取会见权限:
aspnet_regiis-pa"ABeenKeys""NTAUTHORITYNETWORKSERVICE"
注重:
假如RSA密钥容器是用户级容器,必需以其Windows设置文件存储了密钥的用户的身份登录,而且必需包含-pku选项以授与对该用户级RSA密钥容器的会见权限。
若要利用盘算机设置中指定的默许RsaProtectedConfigurationProvider,必需起首向使用程序的Windows标识授与对名为NetFrameworkConfigurationKey的盘算秘密钥容器的会见权限,该盘算秘密钥容器是为该默许供应程序指定的密钥容器。比方,上面的命令向NETWORKSERVICE帐户授与对默许RsaProtectedConfigurationProvider所利用的RSA密钥容器的会见权限。
aspnet_regiis-pa"NetFrameworkConfigurationKey""NTAUTHORITYNETWORKSERVICE"
NetFrameworkConfigurationKeyRSA密钥容器是Aspnet_regiis.exe工具所收回的命令的默许密钥容器。因而上述命令也能够按以下体例收回:
aspnet_regiis-pa"NTAUTHORITYNETWORKSERVICE"
代码下载http://www.ckuyun.com/Files/abeen/connectionTest.rar
注重:我发明这个办法有个缺点,哪就是在每次加密完后,从头启念头算机发明IISadmin堕落了,还得从头安装iis忧郁
我有个同学,他是搞Java的,他给我说“Java不是效率低,而是速度慢。”,我不是搞Java的,我实在想不透这句话的含义,难道执行速度不就是效率低吗?难道执行速度慢还成效率高了? |
|