Version 3.0
在 ASP.NET 中配置应用程
序
第十章
2
回顾
? 用户控件
? 自定义控件
– 属性
– 事件
? 创建自定义控件不同的方法
– 从头开始创建自定义控件
– 从现有控件派生自定义控件
– 创建复合控件
3
目标
? 讨论 Machine.Config
? 讨论 Web.Config
? 讨论配置文件的结构
? 使用身份验证来保护 web 页
4
Web 页 - Web 应用程序
网页 网页
网页 网页
Web 页
---------
---------
Web 应用程序
5
配置文件
? 以纯文本格式存储,使用 XML 编写
? 如果对文件进行了修改,无需重新启动服务
器
? 每个目录可以有其自己的文件,并且将重写
先前的配置文件
例如
<configuration>
<system.web>
<sessionState timeout=”10” />
</system.web>
</configuration>
6
配置文件的类型 2-1
? Machine.Config
– 应用到驻留在服务器上的所有应用程序
– 存储在
C:\WinNT\Microsoft.NET\Framework\v.1.xxxx\config 中
– 仅可以有一个 Machine.Config 文件
? Web.Config
– 应用到驻留在服务器上的单个应用程序
– Web 应用程序的每个目录仅可以有一个此文件
7
配置文件的类型 2-2
Web
应用程序
? 每台计算机上仅可有一个
Machine.Config 文件
? 每个应用程序可有一个
Web.Config 文件
? 重写 Machine.Config
的设置
8
典型的 Web.Config 文件
<configuration>
<configSections>
…
</configSections>
<sessionState cookieless="true"
timeout="10"/>
</configuration>
配置节处理
程序声明区
配置节设置区
9
页配置设置
<configuration>
<system.web>
<pages buffer= "true"
enableViewState= "false" />
</system.web>
</configuration>
可以缓冲对客户端的响应
可以设置视图状态
10
应用程序设置
<configuration>
<appSettings>
<add key="MySQLQuery" value="Select * FROM
MySQLTable"/>
</appSettings>
</configuration>
键值对形式的配置设置
在 ASP.NET 页中读取设置
...
String GetQuery = Configuration.AppSettings( "MySQLQuery" );
...
11
应用程序设置演示
12
编译设置
<configuration>
<system.web>
<compilation debug="false,defaultLanguage="C#"/>
</system.web>
</configuration>
指定是编译发布二进制文件还是编
译调试二进制文件
提供在动态编译文件中使用的
语言名称的分号分隔列表。
13
编译标记的子标记 2-1
<configuration>
<system.web>
<compilation debug="true“
default Language="C#"/>
<assemblies>
<add assembly="System.Data" />
</assemblies>
</system.web>
</configuration>
<add> <remove> <clear>
<assemblies> 子标记
14
编译标记的子标记 2-2
<configuration>
<system.web>
<compilation debug="true"defaultLanguage="C#"/>
<namespaces>
<add namespace="System.Web.UI" />
</namespaces>
</system.web>
</configuration>
<namespaces> 子标记
<compilers> 子标记
15
customErrors 设置
<customErrors
defaultRedirect="url"
mode="On|Off|RemoteOnly">
<error statusCode="statuscode" redirect="url“/>
</customErrors>
<configuration>
<system.web>
<customErrors
defaultRedirect="http://localhost/allError.aspx"
mode="RemoteOnly">
<error statusCode="404"
redirect="http://localhost/Error404.aspx"/>
</customErrors>
</system.web>
</configuration>
语
法
示
例
16
错误页面演示
步骤
1,创建错误页面
2,设置配置文件
17
身份验证和授权 2-1
身份验证类型 描述
WINDOWS Windows 身份验证作为默认的身份验
证模式。用于任何形式的 IIS 身份验证
FORMS 基于 ASP.NET 窗体的身份验证作为默
认的身份验证模式
PASSPORT Microsoft Passport 身份验证作为默认
的身份验证模式
NONE 没有身份验证。用于匿名用户和可以
提供其自己的身份验证的应用程序
18
身份验证和授权 2-2
<configuration>
<system.web>
<authentication mode="Windows|Forms|Passport|None">?
<forms name="name" loginUrl="url"
protection="All|None|Encryption "
timeout="xx" path="/" >?
<credentials passwordFormat="Clear|SHA1|MD5">
<user name="用户名 " password="密码 " />
</credentials>
</forms>?
<passport redirectUrl="internal"/>?
</authentication>
</system.web>
</configuration>
19
Windows身份验证演示
演示步骤:
设置 IIS身份验证方式
设置 ASP.NET身份验证方式
20
<forms> 标记的属性
属性 选项 描述
name None 用于身份验证的 Cookie 名称
loginUrl None 登录页 URL。 如果没有身份验证 Cookie,客户端将
被重定向到此 URL
protection ALL 应用程序同时使用数据验证和加密来保护 Cookie
None 加密和验证都禁用
timeout 一段时间(按分钟计),这段时间之后身份验证
Cookie 将到期。默认值为 30
path 由应用程序发布的 Cookie 的路径。默认值是反斜杠
(/)
21
Forms 身份验证
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="MainForm" loginUrl="LoginPage.aspx"
protection="None" timeout="60">
<credentials passwordFormat="Clear">
<user name="User1" password="user1!"/>
<user name="User2" password="user2@"/>
<user name="User3" password="user3#"/>
</credentials>
</forms>
</authentication>
</system.web>
</configuration>
22
授权
<configuration> <system.web>
<authentication mode="Forms">
<forms name="MainForm” loginUrl="LoginPage.aspx"
protection="None" timeout="60">
<credentials passwordFormat="Clear">
<user name="User1" password="user1!"/>
<user name="User2" password="user2@"/>
<user name="User3" password="user3#"/>
</credentials>
</forms>
</authentication>
<authorization>
<allow users=”User2,User3” />
<deny users=”User1” />
</authorization>
</system.web> </configuration>
23
表单身份验证演示
步骤:
创建验证窗体
设置配置文件
24
总结
? ASP.NET 提供的配置文件有:
– Machine.Config
– Web.Config
? 每个目录可以使用它们自己的 Web.Config 文
件
? 在配置标记内,配置信息分为两个类别
– 配置节处理程序声明区
– 配置节设置区
在 ASP.NET 中配置应用程
序
第十章
2
回顾
? 用户控件
? 自定义控件
– 属性
– 事件
? 创建自定义控件不同的方法
– 从头开始创建自定义控件
– 从现有控件派生自定义控件
– 创建复合控件
3
目标
? 讨论 Machine.Config
? 讨论 Web.Config
? 讨论配置文件的结构
? 使用身份验证来保护 web 页
4
Web 页 - Web 应用程序
网页 网页
网页 网页
Web 页
---------
---------
Web 应用程序
5
配置文件
? 以纯文本格式存储,使用 XML 编写
? 如果对文件进行了修改,无需重新启动服务
器
? 每个目录可以有其自己的文件,并且将重写
先前的配置文件
例如
<configuration>
<system.web>
<sessionState timeout=”10” />
</system.web>
</configuration>
6
配置文件的类型 2-1
? Machine.Config
– 应用到驻留在服务器上的所有应用程序
– 存储在
C:\WinNT\Microsoft.NET\Framework\v.1.xxxx\config 中
– 仅可以有一个 Machine.Config 文件
? Web.Config
– 应用到驻留在服务器上的单个应用程序
– Web 应用程序的每个目录仅可以有一个此文件
7
配置文件的类型 2-2
Web
应用程序
? 每台计算机上仅可有一个
Machine.Config 文件
? 每个应用程序可有一个
Web.Config 文件
? 重写 Machine.Config
的设置
8
典型的 Web.Config 文件
<configuration>
<configSections>
…
</configSections>
<sessionState cookieless="true"
timeout="10"/>
</configuration>
配置节处理
程序声明区
配置节设置区
9
页配置设置
<configuration>
<system.web>
<pages buffer= "true"
enableViewState= "false" />
</system.web>
</configuration>
可以缓冲对客户端的响应
可以设置视图状态
10
应用程序设置
<configuration>
<appSettings>
<add key="MySQLQuery" value="Select * FROM
MySQLTable"/>
</appSettings>
</configuration>
键值对形式的配置设置
在 ASP.NET 页中读取设置
...
String GetQuery = Configuration.AppSettings( "MySQLQuery" );
...
11
应用程序设置演示
12
编译设置
<configuration>
<system.web>
<compilation debug="false,defaultLanguage="C#"/>
</system.web>
</configuration>
指定是编译发布二进制文件还是编
译调试二进制文件
提供在动态编译文件中使用的
语言名称的分号分隔列表。
13
编译标记的子标记 2-1
<configuration>
<system.web>
<compilation debug="true“
default Language="C#"/>
<assemblies>
<add assembly="System.Data" />
</assemblies>
</system.web>
</configuration>
<add> <remove> <clear>
<assemblies> 子标记
14
编译标记的子标记 2-2
<configuration>
<system.web>
<compilation debug="true"defaultLanguage="C#"/>
<namespaces>
<add namespace="System.Web.UI" />
</namespaces>
</system.web>
</configuration>
<namespaces> 子标记
<compilers> 子标记
15
customErrors 设置
<customErrors
defaultRedirect="url"
mode="On|Off|RemoteOnly">
<error statusCode="statuscode" redirect="url“/>
</customErrors>
<configuration>
<system.web>
<customErrors
defaultRedirect="http://localhost/allError.aspx"
mode="RemoteOnly">
<error statusCode="404"
redirect="http://localhost/Error404.aspx"/>
</customErrors>
</system.web>
</configuration>
语
法
示
例
16
错误页面演示
步骤
1,创建错误页面
2,设置配置文件
17
身份验证和授权 2-1
身份验证类型 描述
WINDOWS Windows 身份验证作为默认的身份验
证模式。用于任何形式的 IIS 身份验证
FORMS 基于 ASP.NET 窗体的身份验证作为默
认的身份验证模式
PASSPORT Microsoft Passport 身份验证作为默认
的身份验证模式
NONE 没有身份验证。用于匿名用户和可以
提供其自己的身份验证的应用程序
18
身份验证和授权 2-2
<configuration>
<system.web>
<authentication mode="Windows|Forms|Passport|None">?
<forms name="name" loginUrl="url"
protection="All|None|Encryption "
timeout="xx" path="/" >?
<credentials passwordFormat="Clear|SHA1|MD5">
<user name="用户名 " password="密码 " />
</credentials>
</forms>?
<passport redirectUrl="internal"/>?
</authentication>
</system.web>
</configuration>
19
Windows身份验证演示
演示步骤:
设置 IIS身份验证方式
设置 ASP.NET身份验证方式
20
<forms> 标记的属性
属性 选项 描述
name None 用于身份验证的 Cookie 名称
loginUrl None 登录页 URL。 如果没有身份验证 Cookie,客户端将
被重定向到此 URL
protection ALL 应用程序同时使用数据验证和加密来保护 Cookie
None 加密和验证都禁用
timeout 一段时间(按分钟计),这段时间之后身份验证
Cookie 将到期。默认值为 30
path 由应用程序发布的 Cookie 的路径。默认值是反斜杠
(/)
21
Forms 身份验证
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="MainForm" loginUrl="LoginPage.aspx"
protection="None" timeout="60">
<credentials passwordFormat="Clear">
<user name="User1" password="user1!"/>
<user name="User2" password="user2@"/>
<user name="User3" password="user3#"/>
</credentials>
</forms>
</authentication>
</system.web>
</configuration>
22
授权
<configuration> <system.web>
<authentication mode="Forms">
<forms name="MainForm” loginUrl="LoginPage.aspx"
protection="None" timeout="60">
<credentials passwordFormat="Clear">
<user name="User1" password="user1!"/>
<user name="User2" password="user2@"/>
<user name="User3" password="user3#"/>
</credentials>
</forms>
</authentication>
<authorization>
<allow users=”User2,User3” />
<deny users=”User1” />
</authorization>
</system.web> </configuration>
23
表单身份验证演示
步骤:
创建验证窗体
设置配置文件
24
总结
? ASP.NET 提供的配置文件有:
– Machine.Config
– Web.Config
? 每个目录可以使用它们自己的 Web.Config 文
件
? 在配置标记内,配置信息分为两个类别
– 配置节处理程序声明区
– 配置节设置区