ASP.NET编程:asp.net下加密Config的办法
据说很厉害,甚至可以把C#也干掉^_^,不过也很复杂,本来C++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。复制代码代码以下:<appSettings>
<!--毗连字符串是不是加密-->
<addkey="ConStringEncrypt"value="false"/>
<!--毗连字符串,(能够扩大撑持分歧数据库)假如是加密体例,下面一项要设置为true,假如是明文server=127.0.0.1;database=codematic;uid=sa;pwd=,下面设置为false-->
<addkey="ConnectionString"value="DataSource=DataDirectorywm.mdb;PersistSecurityInfo=True"/>
<!--权限模块毗连字符串-->
<addkey="ConnectionStringAccounts"value="DataSource=DataDirectorywm.mdb;PersistSecurityInfo=True"/>
<addkey="ConnectionString2"value="DataSource=DataDirectorywm.mdb;PersistSecurityInfo=True"/>
<!--假造目次称号(假如是站点,则为空)-->
<addkey="VirtualPath"value=""/>
<!--登录页地点-->
<addkey="LoginPage"value="admin/Login.aspx"/>
<!--默许菜单是不是是睁开形态-->
<addkey="MenuExpanded"value="false"/>
<!--实体工具内容缓村的工夫(分钟)-->
<addkey="ModelCache"value="30"/>
</appSettings>
在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"因为各系统的API不同,代码调用API编写程序就会遇到很多不兼容的地方,比如Java改写后的Serv-U就不能在手机上执行,手机的游戏也不能直接在微机上执行。 现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。 我的意思是.net好用,从功能上来说比JAVA强还是很明显的。 这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。 平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。 可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。 我的意思是.net好用,从功能上来说比JAVA强还是很明显的。 在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
页:
[1]