ASP.NET网页设计asp.net 2.0 中加密web.config 文件中的...
在经过全球个人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的,我实在想不透这句话的含义,难道执行速度不就是效率低吗?难道执行速度慢还成效率高了? ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。 ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。 众所周知,Windows以易用而出名,也因此占据不少的服务器市场。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。 有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
页:
[1]