4.3.1
web.config配置文件
web.config继承自.NETFrmaework安装目录的machine.config文件,machine.config配置文件存储了与影响整个机器的配置信息,不管应用程序位于哪个应用程序域中,都将取用machine.config中的配置.web.config继承了machine.config中的大部分设置,同时也允许开发人员添加自定义配置,或者是覆盖mchine.config中己有的配置.
4.3.2嵌套配置设置
嵌套的配置设置是可以在一个应用程序中同时应用多个web.config文件,ASP.NET使用多层次的配置
系统,允许开发人员在不同的层次配置设置.比如在FirstWebSite网站的根目录中,有一个web.config配置文件,该文件提供了整个网站都可用的配置信息,为了演示嵌套配置设置,在该网站中新添加一个文件夹,右击FirstWebSite项目名称,选择"新建文件夹"菜单项,命名为Customer,在Customer下添加一个customer.aspx的WebForm,接下来右击Customer文件夹,选择添加新项,在弹出的添加新项窗口中选择"Web配置文件"项,如图所示.
4.3.3在web.config中存储自定义设置
在
中,允许开发人员保存自己的配置设置,在配置文件中保存自定义设置信息是非常有用的,可以集中化被多个页面使用的配置设置,可以快整切换不同类型的操作,为变量设置初始值等等.在中,可以使用元素来添加一个键和一个值,新建一个名为appSettingDemo的网站,在配置节中添加如下的配置代码:
4.3.4ASP.NETWeb站点管理工具WAT
在VS2008中,提供了一个相当方便的网站管理工具,使开发人员可以使用可视化的方式来设置配置文件.可以单击VS2008主菜单中的"网站|ASP.NET配置"菜单项来打开WAT,也可以在解决方案的工具栏中单击ASP.NET配置图标打开WAT.WAT是一个基于Web的配置管理工具,这个工具将以可视化的方式编辑位于网站根目录中的web.config文件,初始打开时的页面如图所示.
4.3.5编程读取和写入配置设置
ASP.NET在System.Web.Configuration命名空间中提供了WebConfigurationManager类,用来在运行时编程读取和写入配置设置.在本章前面己经演示过使用该类读取配置节中的设置项,除此之外,WebConfigurationManager类还提供了其他几个成员用于读取或设置其他配置项.WebConfigurationManager静态类中的几个成员如下所示:AppSettings属性:提供访问添加到节中的自定义信息.ConnectionStrings属性:提供访问配置项中的信息.OpenWebConfiguration()方法:为指定的Web应用程序返回配置对象.OpenMachineConfiguration()方法:反回对machine.config文件进行访问的配置对象.
4.3.6加密配置块
ASP.NET支持两种类型的加密选项,一种是RSA,一种是DPAPI.对ASP.NET应用程序来说,加密和解密是完全透明的,假如用户访问一个加密的配置块,ASP.NET将自动完成解密的工作,然后向代码返回纯文本设置.同样的,如果以编程的方式修改了设置项,然后保存,加密工作也会自动的进行完成.下面举一个示例来演示如何为web.config配置文件中的appSettings配置块加密,新建一个ASP.NET网站,命名为encryptionConfig.进入web.config配置文件,在配置节中添加如下的设置项,代码如下所示:
4.4
Web窗体基础
一个ASP.NETWeb应用程序主要是由许许多多的Web页面(也可称之为Web窗体)组成,访问应用程序的用户将会在浏览器中直接看到这些Web窗体的运行效果.在ASP.NET中,开发人员可以使用类似于开发Windows应用程序的基于控件方式来开发ASP.NET应用程序,当ASP.NETWeb窗体运行时,ASP.NET引擎读取整个.aspx文件,生成相应的对象,并触发一系列事件.
4.4.1基于事件的编程模型
ASP.NET使用事件驱动的编程模型,这与Windows开发有点类似,开发人员只需要向Web窗体添加控件,然后响应相应的控件事件.ASP.NET事件编程模型的一个基本过程如下面的步骤所示:(1)当页面首次运行时,ASP.NET创建page对象和控件对象,初始化代码将被执行,然后页面被渲染为HTML格式返回到客户端.(2)当用户触发了页面回发(Postback)时,通常是触发了一些事件,比如单击按钮事件,这时候页面将再次提交所有的表单数据到服务器端.(3)ASP.NET截取返回的页面,并重新创建page对象.(4)ASP.NET检查是什么事件触发了Postback,并触发相应的事件,这时候开发人员编写的触发事件的代码将被执行.(5)页面将被渲染并返回到客户端.page对象从内存中释放,如果其他postback产生,ASP.NET将重复2-4步骤.