⑴ ASP.NET创建WEB应用程序不能对其进行调试
如果iis是后来安装的,需要首先。net在命令工具中执行aspnet_regiis -i,安装asp。netframework
然后检查下边的配置:
如果iis不是后安装的,直接检查下边的配置:
1.确认在“配置属性”中的“启用ASP.NET调试"为"True"
2.确认你的"web.config"中的"debug=true"
3.若你安装过wind2000 SP4后,则要在命令行执行"regsvr32 i aspnet_isap.dll"
4.在IIS里查看站点信息,选中"目录安全性",里面有"匿名访问和身份验证控制",再点击"编辑..",确认"集成Windows身份验证"选项被选中
5.在IE选项->"安全设置"->"自定义级别"里有"用户验",确认选中"自动使用当前用户名和密码登录"
6。修改machine.config文件里的username=machine改为username=system
7。可以通过附加进程去调试。把w3wp.exe 加进去调试
或者试一试 aspnet_regiis.exe -r
⑵ asp.net为什么我每次修改web.config,页面就会报错
CustomErrors默认情况下好像并不处理htm。而是直接发给客户端。因为.config文件由aspnet_isapi.dll来处理的。要想添加的话可以去IIS里设橡裤置。羡如逗
进入管理工具里的“Internet 信息服务(IIS)管理器”,在网站上按右键--属性--主目录--配置--点击映射里的添加,
可执行文件输入:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
扩展名输入:兄卖.htm,然后确定即可。
⑶ 如何通过代码修改web.config文件
代码如下:请导入 System.XML命名空间
string file = Server.MapPath(@"~\web.config");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(file);
string s1 = "aaa";
string s2 = "bbb";
string h = "ccc";
string user = "ddd";
string pass = "eee";
XmlNodeList nodeList = null;
nodeList = xmlDoc.SelectSingleNode("configuration//connectionStrings").ChildNodes;
//遍历所有子节点
foreach (XmlNode xn in nodeList)
{
//将子节点类型转换为XmlElement类型
XmlElement xe = xn as XmlElement;
if (xe.Name == "add")
{
if (xe.GetAttribute("name") == "acountConnectionString")
{
xe.SetAttribute("connectionString", s1);
}
if (xe.GetAttribute("name") == "mailaddress")
{
xe.SetAttribute("connectionString", s2);
}
}
}
nodeList = xmlDoc.SelectSingleNode("configuration//system.net//mailSettings//smtp").ChildNodes;
foreach (XmlNode xn in nodeList)
{
//将子节点类型转换为XmlElement类型
XmlElement xe = xn as XmlElement;
if (xe.Name == "network")
{
xe.SetAttribute("host", h);
xe.SetAttribute("userName", user);
xe.SetAttribute("password", pass);
break;
}
}
xmlDoc.Save(file);
但实际上通过代码修改web.config的操作微乎其微
1. web.config的修改可能会导致session等服务器变量的丢失
2. 如果你的页面是发布在IIS下面,要通过页面修改web.config,必须给web.config这个文件添加 Network service (IIS6)或 ASPNET (IIS)用户的写权限,这在实际操作中是不可想象的
⑷ 如何对web.config进行加密和解密
在WEB网站开发过程中,如果我们将数据库连接字符串封装到.DLL文件中,将会给数据库和程序的迁移带来麻烦,因为万一服务器地址或
者数据库发生变更,那么我们就不得不修改源程序并重新将其编译。更好的解决方法是将数据库连接字符串写入到web.config配置文件中,可问题是将连
接字符串写入到web.config文件中之后,任何人都能打开看到所连接的数据库名和密码,又会带来安全隐患,因此为了保证数据库的安全性,我们可以通
过使用微软IDE自带的命令aspnet_regiis.exe将配置文件web.config中指定的标签进行加密,如果以后想查看加密后的连接字符
串,我们还可以使用aspnet_regiis.exe将加密后的字符串进行解密。
1. 加密通用语法
加密一个特定网站的web.config文件的通用形式
aspnet_regiis.exe -pef secion physical_directory -prov provider
或
aspnet_regiis.exe -pe secion -app virtual_directory -prov provider
其中,各个参数的含义如下:
section表示要加密的配置节
physical_directory用于指定站点的物理路径。
virtual_directory用户指定虚拟路径。
provider指定加密提供程序。
加密一个特定站点的连接字符串就是:
aspnet_regiis.exe -pef "connectionStrings" "你的web项目路径" -prov ""
其中是Windows数据保护API(DPAPI)提供程序,它使用Windows内置的密码学技术来加解密配置节。默认情况下,这个提供程序使用本机的密钥。
2. 加密方法
运行Visual Studio 2008命令提示
加密后的结果
<connectionStrings configProtectionProvider="">
<EncryptedData>
<CipherData> <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAy1WyvzomB0WAlqYo++bAce//lsg/so66+//LD9H9WQ9uF3t/0MoMI9tbrWdFJ1Yu5/e3PAV4RCbCvDlPD0VC7hxtDMqfRjQ+1OhTdk2woiSNpx0TzXwZE25o4vlXq/+lZtAj8lzf2bK+/L0+6bizStRZ7BDnOngV//CVDQ==</CipherValue>
</CipherData>
</EncryptedData>
lt;/connectionStrings>
3. 解密
解密该连接字符串也很简单
aspnet_regiis.exe -pdf "connectionStrings" '你的web项目路径"
解密后的结果:
<connectionStrings>
<add name="Sql" connectionString="Data Source=.;Initial Catalog=MySchool;Integrated Security=True" />
</connectionStrings>
4. 后台代码读取配置文件web.config中数据库连接字符串的方法:
using System.Configuation;
…
protected void Page_Load(object sender, EventArgs e)
{
lblMessage.Text = ConfigurationManager.ConnectionStrings["Sql"].ToString();
}
…
5. 在连接字符串的加密和解密的过程中,需要注意一下几点。
使用加密的连接字符串
使用加密的连接字符串不需要编码解密,ASP.NET会自动对加密内容进行解密。
加密和解密在同一台计算机上使用
在加密过程中,使用了一个基于本机的密钥。这就意味着加密和解密必须在同一台计算机上进行,否则将不能解密。同时,在一台计算机上加密的配置,在另一台计算机上将不能正常使用。
中文路径问题
该命令对中文支持不是很好。如果站点的路径中有中文字符,也许不能正常加解密。
⑸ 良精.net版本web.config设置问题
将 web.config 中
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
改成
<customErrors mode="Off" defaultRedirect="mycustompage.htm"/>
再运行,试试
看有拦肆什么信衡键信息滑巧
⑹ 如何设置web.config,以便使用session进行验证
StateServer模式 进册橡埋程外保存session的.在IIS或ASPNET服务意外关闭时还能继续保持状态.
配置web.config:
<system.web> 节点下:
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424"></sessionState>
如果是远程的计州蚂如返算机还需要配置注册表。
⑺ 如何对Web.config中数据库连接字符串进行加解密
一、如何对Web.config中数据库连接字符串进行加解密,避免明文方式。 1)概述:
Web.Config 中可以存储数据库连接语句,通常存于 <connectionString>配置节中,程序调用非常方便,但是在系统的应用过程中,利用明文存储这些敏感信息是不安全的,这就需要对配置信息进行加密,加密后即使攻击者获取了对配置文件的访问,也可以使攻击者难以获取对敏感信息的访问,从而改进应用程序的安全性。
使用 ASP.NET IIS 注册工具 (Aspnet_regiis.exe) 加密或解密 Web 配置文件的各节。而在在处理 Web.config 文件时,ASP.NET 将自动解密已加密的配置元素。
要加密配置文件的内容, 通过Aspnet_regiis.exe 工具与 –pe 选项以及要加密的配置元素的名称一起使用,利用.NET Framework 提供的2种受保护配置程序来实现节点加解密:
名为的 实例使用 Windows 数据保护 API (DPAPI) 对数据进行加密和解密。
名为的 实例使用 RSA 加密算法对数据进行加密和解密。该提供程序配置为默认提供程序
下面就这2中加密方式,分别进行举例如下:
2)使用 来加解密配置节
利用aspnet_regiis -pef connectionStrings 对web.config 加密 在服务器命令提示符下,输入如下命令:
C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pef connectionStrings D:\程序\某系统\EpointBid_HuiYuan –prov 正在加密配置节„ 成功!
-pef 指定两个参数:
这里 connectionStrings 是要进行加密的配置节,后面是具体的程序路径 这里 D:\程序\某系统\EpointBid_HuiYuan 是要加密的配置文件所在的物理目录。
-prov 表示使用哪个驱动来加密,一共有两个驱动可选,在类似于
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG 的位置,我们可以找到 machine.config 文件,在其 configProtectedData 配置节,我们可以看到这两个驱动的名称,以及默认的驱动是哪一个。这两个驱动是 (类名 ,详细操作见下说明示例)和
(类名 )。
如果不加驱动选项,则采用默认驱动进行加密。
⑻ 我在IIS搭建asp.net的时候,不小心删掉了web.config,怎么办
在安装了IIS先再安装VS.NET运行平台的情况下,因为在安装VS.NET平台时系统就已经自动做好了配置。如果是先安装了VS.NET再安装IIS或要重新安装IIS,在这种情况下就要人工配置.NET运行环境了,这个配置过程很简单,对于winxp系统枯橘,在开始->;运行菜单中输入执没没团行命令:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i 即可,在win2000系统是:C:\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i 。
注意除了安装IIS还要安装.net framework 框架包,否则程察陵序无法运行。
⑼ asp.net的配置文件web.config怎么解密
使用“”形式来加密
test.aspx程序文件基本如上,
把
section.SectionInformation.ProtectSection(“”);
改成
section.SectionInformation.ProtectSection(“”);
但这个时候你访问网站的时候很有可能会出现
说明:
在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 未能使用提供程序“”进行解密。
提供程序返回错误信息为: 打不开 RSA 密钥容器。
这样的错误,解决方法是:
进dos运行:aspnet_regiis -pa “NetFrameworkConfigurationKey”
“NT AUTHORITY\NETWORK SERVICE”
如果运行出错,需要把目录 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
放入环境变量path中。此时就可以成功访问网站了。
同样可以通过命令行来实现“”加密
注意:你也可以不运行 aspnet_regiis -pa “NetFrameworkConfigurationKey”
“NT AUTHORITY\NETWORK SERVICE”命令来注册默认的
的RSA 密钥容器
方法如下:
1)创建一个可导出的rsa密钥容器,命名为Key
aspnet_regiis -pc “Key” -exp
2)在你要加密的信息前面指定密钥容器,如:
<configProtectedData><providers><clear /><add name=”KeyProvider” type=”System.Configuration., System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL” keyContainerName=”Key” useMachineContainer=”true”/></providers></configProtectedData><connectionStrings><add name=”SQLConnString” connectionString=”Data Source=yourIP;Initial Catalog=test;User Id=yourID;Password=yourPassword;”providerName=”System.Data.SqlClient” /></connectionStrings>
并且确保在configuration节的xmlns属性有如下值:
3)对配置文件进行加密
aspnet_regiis -pef “connectionStrings” “E:\project\Test” -prov “KeyProvider”
参数分别为:需要加密的配置节、项目所在目录的物理路径、加密所使用的密钥容器名称
再看web.config文件,就会发现connectionStrings节已经被加密了,但
是运行程序会发现程序仍然可以正确访问数据库。
此时,只需运行:
aspnet_regiis -pdf “connectionStrings” “E:\project\Test”
就可以对web.config文件进行解密。
(注意,如果还是有错误,那可能是您没有给生成的密匙文件足够的权限,
去到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
目录下,找到刚生成的密匙文件,把network service用户的读取权限赋予给它,就可以了,
直接用命令的话也可以:命令如下 aspnet_regiis -pa “Key” “NT AUTHORITY\NETWORK SERVICE” ,
可能需要重新启动iis
4)把密钥容器导出为xml文件
aspnet_regiis -px “Key” “e:\Key.xml”
这个命令只导出公钥,因此以后只能用于加密,而无法解密。
aspnet_regiis -px “Key” “e:\Keys.xml” -pri
这个则连私钥一起导出了,所以我们要用这个。
5)把密钥容器删除
aspnet_regiis -pz “Key”
删除后再运行程序,会提示出错:
分析器错误信息: 未能使用提供程序“KeyProvider”进行解密。
提供程序返回错误信息为: 打不开 RSA 密钥容器。
同理可以证明,在任何一台未安装正确的密钥容器Key的机器上,
程序都无法对connectionStrings节进行解密,因此也就无法正常运行。
6)导入key.xml文件
aspnet_regiis -pi “Key” “e:\Keys.xml”
此时,再运行程序会发现又可以解密了。证明加密与解密机制运行正常。
最后说一下这个机制所提供的安全性保障可以运用在什么方面:
对winform程序的app.config进行加密实际意义并不大,因为无论如何,
客户机都可以通过运行aspnet_regiis -pdf 来对配置文件进行解密,从而暴露敏感信息。
对于web.config进行加密的意义也仅限于,当web.config文件不小心泄露时,
不会同时泄露敏感信息,如果恶意攻击者已经取得了在服务器上运行程序的权限,
那么同app.config一样,可以很容易通过通过运行aspnet_regiis -pdf 获取明文了。
还有,通过aspnet_regiis -pa “Key” “NT AUTHORITY\NETWORK SERVICE”
控制对不同用户对密钥容器的访问权限,应该还可以进一步获取一些安全性,
比如可以控制某些用户即使登录到服务器上,也无法用aspnet_regiis -pdf对配置文件进行解密。
⑽ asp.net4.0应用程序添加asp.net ajax组件 怎么配置web.config,分数不高,但是还是请高手见谅
完全没有分嘛!嘿嘿
给你看一个案例吧
<?xml version="1.0"?>
<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<httpHandlers>
<add verb="*" path="Images/Users/*.jpg" type="CoverHandler"/>
</httpHandlers>
<compilation debug="true" targetFramework="4.0"/>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
</authentication>
<membership>
<providers>
<clear/>
<add name="搜改圆AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" ="0" passwordAttemptWindow="10" applicationName="/"/>
<歼迟/providers>
</membership>
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
</profile>
<roleManager enabled="false">
<providers>
<clear/世塌>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/"/>
<add name="" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/"/>
</providers>
</roleManager>
</system.web>
<system.webServer>
<moles ="true"/>
</system.webServer>
</configuration>