asp.net部署时加密config文件
1:运行cmd,并定位到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727(可以直接运行vs2005的命令提示工具,但是貌似vs2010默认指向的framework3.5里没有aspnet_regiis命令,为了避免有些人找不到,所以还是直接cmd比较好。)
2:运行
aspnet_regiis -pef "appSettings" "D:\demo" //显示"正在加密配置节,成功!"
这里要注意一下,D:\demo是工程的路径,可以是绝对路径,也可以是网站的相对路径,具体方法可以参考aspnet_regiis的帮助。如果你把web.config放在d盘根目录下,那么路径就是"D:\\"。appSettings是要加密的节点名称,也可以针对某个节点的子节点进行加密,例如
aspnet_regiis -pef "system.web/authentication" "D:\demo"
加密完成后,除了视觉上变为复杂的字符串之外,使用上与加密前是完全相同的。解密时运行参数-pdf,例如:
aspnet_regiis -pdf "appSettings" "D:\demo" //显示"正在解密配置节,成功!"
经过加密的字符串,虽然可以在本机使用,但是在另外一台电脑上(客户现场或服务器)是无法直接使用的。需要进行一些配置。
1:创建秘钥容器(pc-操作容器 -exp,可导出)
aspnet_regiis -pc "MyKey" -exp
2:导出容器中的秘钥到xml中(px操作容器文件,注意D:\\后面有一个空格,否则你找不到文件的 ^ ^)
aspnet_regiis -px "MyKey" "D:\\ keys.xml" -pri
3:拷贝你的keys.xml文件到服务器上,并且导入秘钥。(-pi导入容器里的秘钥)
aspnet_regiis -pi "MyKey" “D:\keys.xml”
4:赋权限(ASPNET权限)
aspnet_regiis -pa "MyKey" "ASPNET"
5:修改web.config文件,增加:

<configuration>
<configProtectData defaultProvider="MyProtectedConfigurationProvider">
<providers>
<add name="MyProtectedConfigurationProvider" type="System.Configuration.RsaProtectedConfigurationProvider" cspProviderName="" useMachineContainer="true" useOAEP="false" keyContainerName="SharedKeys"/>
</providers>
</configProtectedData>
</configuration>

完成!
6,FQ
如果出现加密成功后,网站还是不起来,查看系统日志报如下错误:
未能使用提供程序“RsaProtectedConfigurationProvider”进行解密。提供程序返回错误信息为: 打不开 RSA 密钥容器。
这样的错误,解决方法是:
首先确保NETWORK SERVICE有权限完全控制网站所在目录。
进dos运行:aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"
如果运行出错,需要把目录 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 放入环境变量path中。
此时就可以成功访问网站了。
同样可以通过命令行来实现“RSAProtectedConfigurationProvider”加密
asp.net部署时加密config文件的更多相关文章
- eclipse中maven web项目部署时缺少classes文件或者resources文件
写这篇博客的原因 问题描述 昨天发现eclipse中maven web项目部署时缺少classes文件或者resources文件 本来以为是很常见的原因, 依次检查"Java Build P ...
- ASP.NET Web.config文件的配置(Configuration API)
本次我们讨论主要聚焦在以下Web.config配置文件的设置值的读取. 1.<connectionString />连接字符串的读取. 2.<appSettings />应用程 ...
- ASP.NET MVC之读取服务器文件资源的两种方式
初次认识asp.net mvc时,以为所有文件都需要走一遍路由,然后才能在客户端显示, 所以我首先介绍这一种方式 比如说:我们在服务器上有图片: ~/resource/image/5.jpg 我们就需 ...
- 微软ASP.NET网站部署指南(3):使用Web.Config文件的Transformations
1. 综述 大多数程序里都会在Web.config里设置參数,而且在部署的时候须要更改. 每次都手工更改这些配置非常乏味,也easy出错. 该章节将会告诉你假设通过自己主动化更新Web.config文 ...
- .net加密web.config文件
这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串,之前只写了第二种方式,现在将两种方式都写出来,供大家参考.不管使用哪种方式我们在程序中都不需要写任何代码来解密连接字 ...
- ASP.NET MVC 上传大文件时404
前一段时间会员的上传组件改用FLASH的swfupload来上传,既能很友好的显示上传进度,又能完全满足大文件的上传. 后来服务器升级到windows 2008,改为IIS7后,上传文件一旦超过30M ...
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)
原文:在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据) 我们都知道,在asp.net中修改 ...
- Azure web site和web job的config文件加密方式
1.分析 由于Azure Web AppService平台的特殊性,所以在C#中原先的config加密方法DataProtectionConfigurationProvider和RSAProtecte ...
- DataProtectionConfigurationProvider加密web.config文件
web.config 文件中经常会包含一些敏感信息,最常见的就是数据库连接字符串了,为了防止该信息泄漏,最好是将相关内容加密. Aspnet_regiis.exe命令已经提供了加密配置文件的方法,系统 ...
随机推荐
- 黄聪:360、chrome开发插件扩展如何跨域调用其他网站的信息并且显示在扩展、tab中的api
chrome插件提供了查找tab的api chrome.tabs.get(integer tabId, function callback) 但是出于安全的考虑,tab的属性中没有document 因 ...
- C#操作 iis启用父目录
iis6实现: DirectoryEntry site = (DirectoryEntry)root.Invoke("Create", "IIsWebServer&quo ...
- eclipse调试时增加jvm参数
下面的程中我们限制Java 堆的大小为20MB,不可扩展(将堆的最小值-Xms 参数与最大值-Xmx 参数设置为一样即可避免堆自动扩展),通过参数-XX:+HeapDumpOnOutOfMemoryE ...
- C++实现大正整数及其相关运算(长期更新)
/** 只考虑正数[1, +∞); “-”运算只允许大数减小数; 小端存储: */ typedef struct BigInteger0 { vector<int> v; BigInteg ...
- [Python] numpy.sum
import numpy as np #Syntax: numpy.sum(a, axis=None, dtype=None, out=None, keepdims=<class numpy._ ...
- 好记性不如烂笔头-linux学习笔记3mysql数据库导入导出
1 数据库文件导出 mysqldump -uroot -p123456 test > 1.sql 2数据库文件导入 mysql -uroot -p123456 test <1.sql 3 ...
- Rhythmk 学习 Hibernate 04 - Hibernate 辅助工具 之 JBoos Tool
1.安装JBoos Tool Help -> Install new Software 然后添加: http://download.jboss.org/jbosstools/updates/de ...
- Linux学习---Linux目录结构说明
1./- 根 每一个文件和目录从根目录开始. 只有root用户具有该目录下的写权限.请注意,/root是root用户的主目录,这与/.不一样 2./bin中 - 用户二进制文件 包含二进制可执行文件. ...
- $in 操作符
[$in 操作符] The $in operator selects the documents where the value of a field equals any value in the ...
- 基于注解的方式管理Bean
--------------------siwuxie095 基于注解的方式管理 Bean (一)准备 ...