Web.config
<!--
在程序中可以用System.Configuration.ConfigurationSettings.AppSettings["con"]取值
-->
customErrors设置(在<system.web>和</system.web>之间)
语法
<customErrors
</customErrors>
身份验证和授权
身份验证类型: WINDOWS 描述: WINDOWS 身份难作为默认的身份验证模式.用于任何形式的IIS身份验证
身份验证类型: FORMS 描述: 基于APS.NET窗体的身份验证作为默认的身份验证模式
身份验证类型: PASSPORT 描述:Microsoft Passport身份验证作为默认的身份验证模式
身份验证类型: NONE 描述: 没有身份验证.用于匿名用户和可以提供其自己的身份验证的应用程序.
<configuration>
</configuration>
//基于forms先把IIS中该应用的匿名访问去掉
<forms>标记的属性
属性
name
loginUrl
protection ALL
timeout
path
<authentication mode="Forms">
</authentication>
//授权
<authorization>
</authorization>
//login.aspx
登录代码
//连接数据库进行验证
if(true)//用户名是否合法
{
// System.Web.Security.FormsAuthentication.SetAuthCookie(this.TextBox1.Text,false);//指定的用户名写入到Cookie中(false临时Cookie,true永久Cookie)
// Response.Redirect("");
//如果为true,可用System..Web.Security.FormsAuthentication.SignOut();删除,以后又要求登录
}
else
{
}
//如果用户少的话,可以不用数据库,直接允许/拒绝用户
<authentication mode="Forms"
</authentication>
private void Button1_Click(object sender,System.EventArgs e)
{
//
//
}
//授权时,通配符*表示任何人,?表示匿名
-------------
14.2.2 ASP.NET配置元素
由14.2.1节的介绍可以看出,ASP.NET应用程序配置文件Web.config中定义了很多配置元素处理程序声明和配置元素处理程序。本节主要介绍这些配置元素。
1.<configuration>
所有Web.config的根元素都是<configuration>标记,在它内部封装了其他所有配置元素。它的语法如下:
<configuration>
</configuration>
2.<configSections>
该配置元素主要用于自定义的配置元素处理程序声明。所有的配置元素处理程序声明都在这部分。它由多个<section>构成。<section>主要有name和type两种属性。
—
—
<configSections>节配置范例如下:
<configuration>
</configuration>
3.<appSettings>
在<appSettings>元素中可以定义自己需要的应用程序设置项,这充分反映了ASP.NET应用程序配置具有可扩展性的特点。
<appSettings>节语法如下:
<configuration>
<appSettings>
</configuration>
它的<add>子标记主要有两种属性定义:Key和Value。
—
—
下面给出一个范例:检索<appSettings>节中的设置。
第一步:在Web.config文件中配置<appSettings>节。
<configuration>
</configuration>
第二步:在Web页面中检索<appSettings>节的设置。
<html>
<head></head>
<body>
<b>User Name:</b>
<%=ConfigurationSettings.appSettings("appUser") %><br>
</body>
</html>
在第二步中,用ConfigurationSettings.appSettings方法调用Web.config文件中的设置,输出结果为“localhost”。
该方法对访问<appSettings>元素中的应用程序设置非常方便,只需要提供检索的设置值对应的关键字即可,如上述代码。
4.<compilation>
该配置节位于<system.Web>标记中,用于定义使用哪种语言编译器来编译Web页面,以及编译页面时是否包含调试信息。它主要对以下4种属性进行设置。
—
—
—
—
<compilation>元素配置范例如下:
<configuration>
<system.web>
/>
</system.web>
</configuration>
在<compilation>元素中还可以添加<compiler>,<assemblies>,<namespaces>等子标记,它们的使用可以更好地完成编译方面的有关设置。这里就不再详述了。
5.<customErrors>
该配置元素用于完成两项工作:一是启用或禁止自定义错误;二是在指定的错误发生时,将用户重定向到某个URL。它主要包括以下两种属性。
—
—
另外,<customErrors>元素还包含一个子标记——<error>,用于为特定的HTTP状态码指定自定义错误页面。它具有以下两种属性。
—
—
<customErrors>元素配置范例如下:
<configuration>
<system.web>
<error statusCode="401"
/>
</system.web>
</configuration>
6.<globalization>
该配置元素主要完成应用程序的全局配置。它主要包括以下3种属性。
—
(1)UTF-7:Unicode UTF-7字节编码技术。
(2)UTF-8:Unicode UTF-8字节编码技术,这也是最常用的基于Web的Unicode格式。
(3)UTF-16:Unicode UTF-16字节编码技术。
(4)ASCII:标准ASCII码。
—
—
<globalization>节配置范例如下:
<configuration>
<system.web>
</system.web>
7.<sessionState>
该配置用于完成ASP.NET应用程序的会话状态设置。它主要有以下5种属性。
—
—
—
—
—
<sessionState>节配置范例如下:
<configuration>
<system.web>
/>
</system.web>
</configuration>
8.<trace>
该配置元素用来实现ASP.NET应用程序的跟踪服务,在程序测试过程中定位错误。其主要属性如下。
—
—
—
—
—
<trace>元素配置范例如下:
<configuration>
<system.web>
/>
</system.web>
</configuration>
9.<authentication>
该配置元素主要进行安全配置工作。它最常用的属性是mode,用来控制ASP.NET Web应用程序的验证模式,可以设置为以下任一种值。
—
—
—
—
另外,<authentication>元素还有一个子标记<forms>,使用该标记可以对cookie验证进行设置。它包含以下5种属性。
—
—
—
—
—
<authentication>元素范例如下:
<configuration>
<system.web>
</system.web>
</configuration>
在实际应用中,ASP.NET应用程序的安全配置使用非常广泛,且很有用。
14.2.3 自定义应用程序设置的配置和检索
前面介绍ASP.NET应用程序配置系统的优点时,曾指出该配置系统是可扩展的。用户不仅可以使用系统预定义的元素,还可以在Web.config文件中添加自定义标记,创建自己的配置处理程序和设置。
1.<appSettings>
Web.config文件中有一个可选标记<appSettings>,专门用于存放应用程序设置。该应用程序的任何页面都可以访问到该Web.config文件中的应用程序设置。如果要修改设置,只要在配置文件中进行修改就行,无须逐个修改应用程序的每个页面。
下面请看一个简单的例子,以加深对Web.config文件中扩展应用程序配置信息的理解。
<configuration>
<add key="MySettings" value="扩展应用程序配置信息" />
</configuration>
在上面的Web.config文件中,设置了一个字符串,关键字为MySettings,键值为“扩展应用程序配置信息”。
在.NET类库中有一个System.Configuration.ConfigurationSettings类,利用它可以检索任意配置节的数据信息。ConfigurationSettings类有一个AppSettings属性,利用该属性可以检索<appSettings>节的信息,方法如下:
string sqlconn=ConfigurationSettings.AppSettings["MySettings"];
2.自定义标记
在Web.config文件中并不限于通过预定义的标记<appsettings>来保存配置信息,Web.config的格式也允许用户添加新的自定义标记。在该标记内,可定义新的配置信息。
下面请看实例,创建一个节存储数据库连接字符串。
<configuration>
</configuration>
上述代码的配置过程可以分为两步。
第一步:在<configSections>中,声明了一个新的自定义配置元素处理程序,即声明自定义标记的名称(<OwnSettings>)和类型(System.Configuration.NamueFileSection Handler)。注意,由于自定义标记并不是machine.config文件设定的默认配置,所以需要定义该标记的类型(在自定义标记内,可以使用任何System.Configuration类支持的类型)。
第二步:在<configSections>域之后,为声明的标记(<OwnSettings>)做实际的应用程序配置。
可以使用ConfigurationSettings.GetConfig()方法访问自定义标记。该方法接受自定义标记名称(<OwnSettings>)作为参数,键的名称("constring")作为标记的属性,方法如下:
string myConn= (string)ConfigurationSettings.GetConfig ("OwnSettings") ["constring"];