web.config的相关配置

来源:互联网 发布:手机数据漫游要不要开 编辑:程序博客网 时间:2024/05/19 22:49

Machine.config是Web服务器中的跟配置文件,位于C:/WINDOWS/Microsoft.NET/ Framework/v2.0.50727/CONFIG中目录,也称为机器配置文件,包含了服务器上所以ASP.NET应用程序的配置。
Web.Config配置文件,即应用程序配置文件,继承自Machine.config,并覆盖相同的选项,并不是Web应用程序必须的配置文件,也可以有多个,每一个Web.Config只对该文件夹起作用。
其工作原理是:邻近原则。即当页面被初始化时,首先访问machine.config中的配置信息,然后访问跟目录中的Web.Config,如果存在相同的配置,则会覆盖machine.config的配置信息,再读取下一级目录中的Web.Config,如果配置相同,则覆盖上一级的,依次类推,直到该页面所在的目录为止,即使下一级中还有Web.Config,也不再访问它。

Web所有配置信息都在<configuration>和</configuration>根元素之间 ,配置节处理程序声明出现在配置文件顶部<configuration>和</configuration>标记之间。
自定义应用程序配置位于<appSettings>和</appSettings>,配置节位于<system.web>和</system.web>节中,用于控制ASP.NET运行时的行为
1、Web.config文件的结构
<?xml version="1.0" encoding="utf-8"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
/Windows/Microsoft.Net/Framework/v2.x/Config 中
-->
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="false" />
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Windows" />
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。
? <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>

可以在Web.config文件中保存用于连接数据库的字串,在Web.config文件中添加的代码如下:
2、使用Web.config文件存放常量
<appSettings>
<add key="conStr" value="Data Source=localhost;Initial Catalog=NorthWind;User ID=sa;Password="/>
</appSettings>
在网站的“Default.aspx”页面中添加一个GridView控件,将其AllowPaging设为True,在Default.aspx.cs文件中的Page_Load事件中,从Web配置文件中读取数据库连接字串,并从employees表中读取记录,然后显示在GridView中,添加的代码如下:
protected void Page_Load(object sender, EventArgs e)
{
//从配置文件获取数据库连接串
string strConnection = ConfigurationManager.AppSettings["conStr"];
string sql = "select employeeID,LastName,FirstName,Title from employees";//SQL语句
SqlConnection connection = new SqlConnection(strConnection);
DataSet ds = new DataSet();
connection.Open();
//使用 SelectCommand 和 SqlConnection 对象初始化 SqlDataAdapter 类的新实例
SqlDataAdapter da = new SqlDataAdapter(sql, connection);
da.Fill(ds);
this.GridView1.DataSource = ds;//把表table的数据绑定的到GridView1
this.GridView1.DataBind();//执行绑定
connection.Close();
}

配置节设置部分的< authorization>和</ authorization>可以配置ASP.NET授权支持。配置节设置部分的<authentication>和</authentication>可以设置应用程序的身份验证策略。
<authorization>和</authorization>用于设置允许或拒绝不同的用户或角色访问。其语法是:
3、网站的安全性配置
<authorization>
<allow users=”” roles=”” verbs=””/>
<deny users=”” roles=”” verbs=””/>
</authorization>
<authentication>和</authentication>用于设置应用程序的验证方式,其语法是:
<authentication mode=”Form|Passwort|Windows|None”>
<forms
loginUrl=”Url”
name=”Name”
path=”/”
protection=”All|Encryption|None|Validation”
timeout=”time”
>
<credentials passwordFormat=”Clear|MD5|SHA1”>
<user name=”UserName” password=”PassWord”/>
</credentials>
</forms>
<passport redirectUrl=”Url”/>
</authentication>

1.<compilation>和</compilation>
<compilation>和</compilation>段主要完成ASP.NET使用动态调试编译选项,其语法如下所示:
4、Web.config文件的其它配置
<compilation
debug="[true|false]"
defaultLanguage="language"
/>
2.<customErrors>和</customErrors>
<customErrors>和</customErrors>段可以完成在ASP.NET应用程序中自定义错误消息的功能,可以在应用程序文件层次结构中的任意级别上定义customErrors元素,其语法如下所示:
<customErrors
mode="off|on|RemoteOnly"
defaultRedirect="Url"
<error statusCode="Code" redirect="Url"/>
>
</ customErrors >

3.<globalization>和</globalization>
<globalization>和</globalization>段主要用于完成应用程序的全球化设置,其语法如下所示:
4、Web.config文件的其它配置
<globalization
requestEncoding="any valid encoding string"
responseEncoding="any valid encoding string"
fileEncoding="any valid encoding string"
/>
4.<sessionstate>和</sessionstate>
<sessionstate>和</sessionstate>段用来完成会话状态的设置,默认情况下,ASP.NET 使用Cookie来标识哪些请求属于特定的会话。如果Cookie不可用,则可以通过将会话标识符添加到URL来跟踪会话。基本语法定义如下所示:
<sessionState
mode="[Off|InProc|StateServer|SQLServer|Custom]"
timeout="number of minutes"
cookieless=
"[true|false|AutoDetect|UseCookies|UseUri|UseDeviceProfile]"
sqlConnectionString="sql connection string"
stateConnectionString="tcpip=server:port"
/ >