关于Web.config加密问题

时间:2021-10-13 20:18:48
我输入aspnet_regiis -pe "connectionStrings" -app "/configSet" -prov "RsaProtectedConfigurationProvider" 
然后显示: 
正在加密配置节... 
无法为请求的Configuration 对象创建配置文件。 
失败!

12 个解决方案

#1


aspnet_regiis.exe 是命令行程序,在命令提示符环境中运行

#2


可以使用受保护配置来加密 Web 应用程序配置文件(如 Web.config 文件)中的敏感信息(包括用户名和密码、数据库连接字符串和加密密钥)。对配置信息进行加密后,即使攻击者获取了对配置文件的访问,也可以使攻击者难以获取对敏感信息的访问,从而改进应用程序的安全性。

针对asp.net 2.0的应用程序的数据库链接字符串进行加密:例如,未加密的配置文件中可能包含一个指定用于连接到数据库的连接字符串的节,如下面的示例所示:

<configuration>

  <connectionStrings>
    <add name="SampleSqlServer" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;" />
   </connectionStrings>
</configuration>
ASP.NET 2.0 中有一个新的安全特性.可以对 Web.config 文件中的任何配置节进行加密处理,可以通过手工运行工具aspnet_regiis或者编程来完成这个工作。如果你可以直接访问你的Web 服务器,你可以通过运行如下的命令行:

 cd  %windows%\Microsoft.NET\Framework\versionNumber 

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" –prov RsaProtectedConfigurationProvider

-pd section
 对配置节进行解密。此参数采用下面的可选参数:

·         -app virtualPath   指定应该在包含路径的级别进行解密。

·         -location subPath   指定要解密的子目录。

·         -pkm   指定应该对 Machine.config 而非 Web.config 文件进行解密。
 
-pdf section webApplicationDirectory
 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行解密。
 
-pe section
 对指定的配置节进行加密。此参数采用下面的可选修饰符:

·         -prov provider   指定要使用的加密提供程序。

·         -app virtualPath    指定应该在包含路径的级别进行加密。

·         -location subPath   指定要加密的子目录。

·         -pkm   指定应该对 Machine.config 而非 Web.config 文件进行加密。
 
-pef section webApplicationDirectory
 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。

#3


如果你是使用虚拟主机等不能访问物理的服务器,你仍然能够通过编程方式加密的连接字符串:

1 Configuration config = Configuration.GetWebConfiguration(Request.ApplicationPath);
2 ConfigurationSection section = config.Sections["connectionStrings"];
3 section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");;
4 config.Update ();

#4


http://shanyou.cnblogs.com/archive/2006/02/08/327196.aspx

#5


-pef section webApplicationDirectory 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。 

#6


引用 5 楼 yuxuanji 的回复:
-pef section webApplicationDirectory 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。

的确是这样,以前在文件系统里老是加密不了

#7


aspnet_regiis -pef  配置字节名connectionStrings  项目路径

这样应该没问题的,我这都能OK

#8


.Net Pet Shop 上可以看看。
一定对你有启发的。

#9


东方古国

#10


好东东

#11


<!--#Include File="Inc/Conn.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>修改为精华</title>
<link href="css.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.STYLE1 {
    font-size: 14px;
    font-weight: bold;
}
-->
</style>
</head>

<body>

<!-- #include file="Head1.asp" -->
<table width="1000" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF" align="center">
  <tr>
    <td>
        <table width="980" border="0" cellspacing="0" cellpadding="0" align="center">
      <tr>
        <td height="8" colspan="6"></td>
      </tr>
      <tr>
        <td colspan="6" bgcolor="#BFBFBF" align="center" height="25"><span class="STYLE1">修改为精华图片</span></td>
      </tr></table>
     <%
Dim Action,TitleId,ImageID,score
ImageID=(Request.QueryString("TitleId"))
Set rsw = Server.CreateObject("ADODB.Recordset") 
sqlw="select * from Nt_Imgbook" 这里是读取图片的表
rsw.open sqlw,conn,1,3 
if not rsw("id")=ImageID  then  判断图片的ID是否与request过来图片的id相等 如果相等则显示下表格
%>
    <table width="980" border="0" cellspacing="0" cellpadding="0" align="center">
      <%
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from nt_score" 这个是设为精华表
rs.open sql,conn,1,3
if rs("imageid")=ImageID  then   判断精华表里的imageid是否与request过来图片的id相等 如果相等则显示下表格 
%>
      <%dim rsa,sqla
Set rsa = Server.CreateObject("ADODB.Recordset")
sqla="select * from nt_score where ImageID="&request("titleid")&"" 这里就是读取表里的信息,条件是表里的imageid是否与request过来图片的id相等
rsa.open sqla,conn,1,3
%>
       <form action="xjj?Action=jjl" method="post">
      <tr>
        <td width="316" height="35" align="right">
        图片id:
          <input name="id1" type="text" size="10"  value="<%=rsa("ImageID")%>"/></td>
        <td width="136">*图片id不可以改1</td>
        <td width="150" height="35" align="right">
        张数:<input name="zs2" type="text" size="10"  value="<%=request("count")%>"/></td>
        <td width="150">*图片张数不可以改1</td>
        <td width="134" height="35" align="right">
        得分: 
          <input name="score1" type="text" size="10"  value="<%=rsa("score")%>"/></td>
        <td width="394">*100分以上为精华图片,如果取消精华的话,填写100以下1</td>
      </tr>
       <tr>
        <td height="28" colspan="6" align="center"><input type="submit" name="Submit" value="提交" /></td>
      </tr></form>
       <%rsa.movenext 
rsa.close
%>    
     <%else%> 判断精华表里的imageid是否与request过来图片的id相等 如果不相等则显示下表格

       <form action="tjj.asp" method="post">
      <tr>
        <td width="152" height="35" align="right">
        图片id:<input name="id2" type="text" size="10"  value="<%=request("titleID")%>"/></td>
        <td width="150">*图片id不可以改2</td>
        <td width="150" height="35" align="right">
        张数:<input name="zs2" type="text" size="10"  value="<%=request("count")%>"/></td>
        <td width="150">*图片张数不可以改2</td>
        <td width="160" height="35" align="right">
        得分:<input name="score2" type="text" size="10"  value=""/></td>
        <td width="118">*100分以上为精华图片,如果取消精华的话,填写100以下2</td>
      </tr>
       <tr>
        <td height="28" colspan="6" align="center"><input type="submit" name="Submit" value="提交" /></td>
      </tr></form>
      <%rs.movenext 
end if
rs.close
%>    
    </table>
    <%else%> 如果request过来的id跟图片表不相等则显示
        <table width="980" border="0" cellspacing="0" cellpadding="0" align="center">
      <tr>
        <td height="8" colspan="6"></td>
      </tr>
      <tr>
        <td colspan="6"align="center" height="25">数据库找不到此图片ID&nbsp;&nbsp;&nbsp;[<a href="index.asp">返回首页</a>]</td>
      </tr></table>
<%rsw.movenext 
end if
rsw.close
Set rsw=Nothing
%>
    </td>
  </tr>
</table>

<table width="1000" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
  <tr><td>
<table width="980" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="8"></td>
  </tr>
</table>
<!--db-->
<!-- #include file="footer.asp" -->
(现在的问题是当 rs("imageid")=ImageID  这样写的时候,就显示else那个表格,当rs("imageid")<>ImageID 就显示<form action="xjj?Action=jjl" method="post">的那个表格,但是当ruquest过来的图片titileid不等于nt_score表里的imageid就出现错误)bof 或sof 有一个是真。。。帮我解决解决。。谢谢啦

#12


BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

#1


aspnet_regiis.exe 是命令行程序,在命令提示符环境中运行

#2


可以使用受保护配置来加密 Web 应用程序配置文件(如 Web.config 文件)中的敏感信息(包括用户名和密码、数据库连接字符串和加密密钥)。对配置信息进行加密后,即使攻击者获取了对配置文件的访问,也可以使攻击者难以获取对敏感信息的访问,从而改进应用程序的安全性。

针对asp.net 2.0的应用程序的数据库链接字符串进行加密:例如,未加密的配置文件中可能包含一个指定用于连接到数据库的连接字符串的节,如下面的示例所示:

<configuration>

  <connectionStrings>
    <add name="SampleSqlServer" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;" />
   </connectionStrings>
</configuration>
ASP.NET 2.0 中有一个新的安全特性.可以对 Web.config 文件中的任何配置节进行加密处理,可以通过手工运行工具aspnet_regiis或者编程来完成这个工作。如果你可以直接访问你的Web 服务器,你可以通过运行如下的命令行:

 cd  %windows%\Microsoft.NET\Framework\versionNumber 

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" –prov RsaProtectedConfigurationProvider

-pd section
 对配置节进行解密。此参数采用下面的可选参数:

·         -app virtualPath   指定应该在包含路径的级别进行解密。

·         -location subPath   指定要解密的子目录。

·         -pkm   指定应该对 Machine.config 而非 Web.config 文件进行解密。
 
-pdf section webApplicationDirectory
 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行解密。
 
-pe section
 对指定的配置节进行加密。此参数采用下面的可选修饰符:

·         -prov provider   指定要使用的加密提供程序。

·         -app virtualPath    指定应该在包含路径的级别进行加密。

·         -location subPath   指定要加密的子目录。

·         -pkm   指定应该对 Machine.config 而非 Web.config 文件进行加密。
 
-pef section webApplicationDirectory
 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。

#3


如果你是使用虚拟主机等不能访问物理的服务器,你仍然能够通过编程方式加密的连接字符串:

1 Configuration config = Configuration.GetWebConfiguration(Request.ApplicationPath);
2 ConfigurationSection section = config.Sections["connectionStrings"];
3 section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");;
4 config.Update ();

#4


http://shanyou.cnblogs.com/archive/2006/02/08/327196.aspx

#5


-pef section webApplicationDirectory 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。 

#6


引用 5 楼 yuxuanji 的回复:
-pef section webApplicationDirectory 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。

的确是这样,以前在文件系统里老是加密不了

#7


aspnet_regiis -pef  配置字节名connectionStrings  项目路径

这样应该没问题的,我这都能OK

#8


.Net Pet Shop 上可以看看。
一定对你有启发的。

#9


东方古国

#10


好东东

#11


<!--#Include File="Inc/Conn.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>修改为精华</title>
<link href="css.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.STYLE1 {
    font-size: 14px;
    font-weight: bold;
}
-->
</style>
</head>

<body>

<!-- #include file="Head1.asp" -->
<table width="1000" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF" align="center">
  <tr>
    <td>
        <table width="980" border="0" cellspacing="0" cellpadding="0" align="center">
      <tr>
        <td height="8" colspan="6"></td>
      </tr>
      <tr>
        <td colspan="6" bgcolor="#BFBFBF" align="center" height="25"><span class="STYLE1">修改为精华图片</span></td>
      </tr></table>
     <%
Dim Action,TitleId,ImageID,score
ImageID=(Request.QueryString("TitleId"))
Set rsw = Server.CreateObject("ADODB.Recordset") 
sqlw="select * from Nt_Imgbook" 这里是读取图片的表
rsw.open sqlw,conn,1,3 
if not rsw("id")=ImageID  then  判断图片的ID是否与request过来图片的id相等 如果相等则显示下表格
%>
    <table width="980" border="0" cellspacing="0" cellpadding="0" align="center">
      <%
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from nt_score" 这个是设为精华表
rs.open sql,conn,1,3
if rs("imageid")=ImageID  then   判断精华表里的imageid是否与request过来图片的id相等 如果相等则显示下表格 
%>
      <%dim rsa,sqla
Set rsa = Server.CreateObject("ADODB.Recordset")
sqla="select * from nt_score where ImageID="&request("titleid")&"" 这里就是读取表里的信息,条件是表里的imageid是否与request过来图片的id相等
rsa.open sqla,conn,1,3
%>
       <form action="xjj?Action=jjl" method="post">
      <tr>
        <td width="316" height="35" align="right">
        图片id:
          <input name="id1" type="text" size="10"  value="<%=rsa("ImageID")%>"/></td>
        <td width="136">*图片id不可以改1</td>
        <td width="150" height="35" align="right">
        张数:<input name="zs2" type="text" size="10"  value="<%=request("count")%>"/></td>
        <td width="150">*图片张数不可以改1</td>
        <td width="134" height="35" align="right">
        得分: 
          <input name="score1" type="text" size="10"  value="<%=rsa("score")%>"/></td>
        <td width="394">*100分以上为精华图片,如果取消精华的话,填写100以下1</td>
      </tr>
       <tr>
        <td height="28" colspan="6" align="center"><input type="submit" name="Submit" value="提交" /></td>
      </tr></form>
       <%rsa.movenext 
rsa.close
%>    
     <%else%> 判断精华表里的imageid是否与request过来图片的id相等 如果不相等则显示下表格

       <form action="tjj.asp" method="post">
      <tr>
        <td width="152" height="35" align="right">
        图片id:<input name="id2" type="text" size="10"  value="<%=request("titleID")%>"/></td>
        <td width="150">*图片id不可以改2</td>
        <td width="150" height="35" align="right">
        张数:<input name="zs2" type="text" size="10"  value="<%=request("count")%>"/></td>
        <td width="150">*图片张数不可以改2</td>
        <td width="160" height="35" align="right">
        得分:<input name="score2" type="text" size="10"  value=""/></td>
        <td width="118">*100分以上为精华图片,如果取消精华的话,填写100以下2</td>
      </tr>
       <tr>
        <td height="28" colspan="6" align="center"><input type="submit" name="Submit" value="提交" /></td>
      </tr></form>
      <%rs.movenext 
end if
rs.close
%>    
    </table>
    <%else%> 如果request过来的id跟图片表不相等则显示
        <table width="980" border="0" cellspacing="0" cellpadding="0" align="center">
      <tr>
        <td height="8" colspan="6"></td>
      </tr>
      <tr>
        <td colspan="6"align="center" height="25">数据库找不到此图片ID&nbsp;&nbsp;&nbsp;[<a href="index.asp">返回首页</a>]</td>
      </tr></table>
<%rsw.movenext 
end if
rsw.close
Set rsw=Nothing
%>
    </td>
  </tr>
</table>

<table width="1000" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
  <tr><td>
<table width="980" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="8"></td>
  </tr>
</table>
<!--db-->
<!-- #include file="footer.asp" -->
(现在的问题是当 rs("imageid")=ImageID  这样写的时候,就显示else那个表格,当rs("imageid")<>ImageID 就显示<form action="xjj?Action=jjl" method="post">的那个表格,但是当ruquest过来的图片titileid不等于nt_score表里的imageid就出现错误)bof 或sof 有一个是真。。。帮我解决解决。。谢谢啦

#12


BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。