基于net的毕业论文数据库系统的设计与实现(编辑修改稿)内容摘要:

在 处理过程中,可以访问所有的 .NET 类、 C或其他语言创建的定制组件、数据库等。 实际上,运行 C应用程序和 的功能一样强大,在 中使用 C就是在运行 C程序。 文件包含以下内容: ① C、 、 代码和 .NET Framework 目前或将来支持的其他语言的代码。 ② HTML 代码和服务器的处理指令。 ③ 内嵌的 服务器控件, HTML 控件和用户定制的控件。 Web 窗体( Web Form) Web Form 是在面向对象编程模式上设计的,它使代码重用成为可能,并让程序代码和页面显示内容分开。 在 Visual 环境中创建一个类型为 C的 Web Application 工程,建立一个名为 Web 的解决方案,其中包含两个文件,一个是 ,它是一个 页面,另一个是 文件,它是该 Web Form 的 C逻辑代码文件。 在该页面上添加一个按钮,2 .NET 框 架技术研究 11 的核心代码 如下所示: %@Page language=c Codebehind= AutoEventWireup=false Inherits=% HTML body MS_POSITIONING=GridLayout form id=WebForm1method=post runat=server asp:button id=ClickText=Click me runat=server /asp:button /form /body /HTML 这页代码中有几个地方需要解释: ① 在顶部的 %@Page%中描述了该 页面后台代码的设置情况。 用Languange 属性指定使用的是 C代码,用 Codebehind 属性指定驱动页面的逻辑代码在那个文件中,如本例的 ,在这个文件中包含一个类的定义,这个类用作 Web Form 的基类,这个基类可以和 .aspx 文件中的代码一起使用,生成最终的 HTML 页面。 这样就将 与面向对象的模型联系 在一起了。 ② 在 form元素内包含的是各种控件的显示标注,其中最重要的属性是runat,将其设置为 server,表示窗体的处理将在服务器端上进行。 如果没有包含这个属性,在服务器端就不会有任何处理。 在窗体内包含了一个按钮控件,其语法是基于 XML 的,控件可以是服务器端的也可以是客户端的,同样通过 runat 属性来控制。 在 文件中包含的则是程序逻辑代码,其中有几点值得注意: 代码的首部加载代码默认的应用集,通过“ using”关键字来实现。 紧接着定义了主类,它从 继承,每个 页面都是一个 Page 对象的实例。 ② 的页面事件。 Page 对象有一个默认的构造方法,注册 Page_Init()的一个事件处理程序,并在页面加载的时候调用这个程序。 在这个处理程序内调用 InitializeComponent()方法,把所有设计阶段的代码添加到窗体中,并对控件的事件处理程序进行注册。 通过上述的方式, 将程序代码和页面显示标注隔离开来,前台负责显示和美观等功能,后台实现商务逻辑功能。 引入了面向对象的高级语言来撰写后台代码 ,提供了先进的事件处理模型,易于调试且功能强大。 的状态管理 基于 HTTP 技术的 Web 窗体是无状态的,每次将 Web 请求发送到服务器时,都2 .NET 框 架技术研究 12 会重新创建 Web 页,这意味着每次往返都会丢失所有与该页和该页上的控件相关联的信息。 提供了多种方式来维护返行于客户端和服务器之间的状态信息,其中最常用的是 Cookie 和 Session。 Cookie 用于在客户端上存储少量的经常更改的信息,这些信息与请求一起发送到服务器,它不需要任何服务器资源。 Cookie 是基于文本结构的,它可以在浏览器 会话结束时灭亡,也可以在客户端计算机上无限期存在,这取决于客户端的时间限制。 .NET 基础类库使用了同名的 Cookie 类来生成和管理客户端的 Cookie。 Session 是由服务器管理的会话状态,它可存储复杂的数据类型且拥有较高的安全性。 Session 最常见的用途是与 Cookie 一起向 Web 应用程序提供用户标识,会话状态可用于不支持 HTTP Cookie 的浏览器,因为它是独立于客户端的。 .NET基础类库的 HttpSessionState类提供了对会话状态值以及会话生存期的访问和控制。 数据库访问技术 微软推出的 .NET 框架创立了一种取代 COM 和 COM+的组件模型, 是微软推出的在 .NET Framework 下全新的数据访问编程模型及数据访问技术,它构建在以前的数据访问功能之上,并替代现有的、广泛应用的数据访问接口。 为现在的应用程序对各种类型的数据存储像各种数据库、文本文件、XML 、 某 些特 定 领域 如 Microsoft Exchange Server 的 电 子邮 、 日历 ,ActiveDirectory 上基于 Window 的服务器存储的系统用户、权限等信息,Spreadsheets 的访问提供了统一的一致的单一访问方式,因而其更有逻辑,更加结构化。 图 展示了 的软件层次模型图。 图 Fig hierarchical structure 2 .NET 框 架技术研究 13 数据提供者是处理特定类型的数据库的类“集”。 不同类型数据提供者是不同的一组类,实现各自访问特定类型的数据存储的功能,这也是 对各种数据存储类型作的优化。 数据提供者为了被调用必须提供一组基本的功能,但特殊的数据提供者可以有许多额外的属性和方法,他们对于被 访问的数据存储器的类型来说是唯一的。 在 Web 开发中,数据库访问技术是其关键技术之一。 微软早期提供了 ADO( ActiveX Data Object)技术来实现数据库访问, ADO 通过 Connection, Command和 RecordSet对象对数据库进行操作,当在不同应用程序或组件之间传送 RecordSe时,必须将参数和数据包装成标准的二进制格式,再适当地进行数据类型转换,这样就造成了数据访问速度慢、效率低。 此外, ADO 的数据存取处理主要依赖于两层结构,并且是基于连接的。 断开连接,数据就不能进行存取操作。 是在 .NET Framework 下对 ADO 技术的扩展, 的数据处理采用三层体系结构,并且是面向无连接的模式,其体系结构如图 27 所示: 图 提出了一个全新的数据访问概念数据集 DataSet, DataSet 不依赖于数据库链路,它通过数据适配器 DataAdapter 来访问数据库, DataAdapter 是数据源和 DataSet 之间的“桥”, DataAdapter 能自动将对数据的各种操作变换到数据源相关的 SQL 语句上。 DataSet 在内部是用 XML 来描述数据的,由于 XML 是一种平台无关、语言无关的数据描述语言,用它可描述复杂的数据关系。 此外, DataSet与同样是非连接 RecordSet 相比,它还包含了数据表之间的联系, DataSet 实际上是在内存中构建了一个关系数据库模型,所以它有更丰富的编程模型。 这样,程序员在编程时可以屏蔽数据库之间的差异,从而获得一致的编程模型。 设计了两套数据库通讯程序:一种是 OLEDB Data Provider,它可以连接到任何支持对象链接和嵌入式数据库 OLEDB( Object Linking and Embedding Database)驱动程序的数据库;另一种是 SQL Server Data Provider,它是专为与 SQL Server7 及以后版本通讯而设计的。 假设 conn 代表数据库连接实例, select代表一条 SQL 语句,下面分别用这两种方式来访问数据库: 2 .NET 框 架技术研究 14 ① 用 OLEDB Data Provider。 OleDbDataAdapter adapter=new OleDbDataAdapter(select,conn)。 DataSet ds=new DataSet()。 (ds)。 ② 使用 SQLServer Data Provider SqlDataAdapter adapter=new SqlDataAdapter(select,conn)。 DataSet ds=new DataSet()。 (ds)。 中的认证和授权 在 中实现认证 提供了三种用户认证方法, Windows 认证、 Passport 认证和 Forms认证。 Windows 认证是通 过 IIS 实现的,只需稍微修改(甚至不修改)页面即可实现; Passport 和 Forms 认证类似:后者是在服务器上实现的,而前者是通过微软公司的订阅服务实现的 [11]。 ○ 1 Windows 认证 请求 页面时,客户首先遇到的是 Web 服务器 IIS。 此时 IIS 将对用户进行认证。 当 IIS 处理认证工作时,它可以直接与操作系统(如 Windows 2020)进行通信,对用户的证件进行验证。 图 说明了这种 IIS Web 应用程序体系结构。 图 Fig Security Architecture IIS 赋予的身份是由 Windows 用户帐户定义的,因此被称为 Windows 认证。 系统通过在 文件中使用下面的代码行来启用这种认证方法: 2 .NET 框 架技术研究 15 authentication mode=“Windows”/ IIS 使用三种不同类型的 Windows 认证: Basic、 Digest 和 NTLM(集成的Windows 认证, Integrated Windows Authentication)。 以 Basic 认证为例,认证步骤如下: 1)客户向服务器请求被限制的资源; 2)Web 服务器以“ 401 Unauthorized”进行响应; 3)Web 浏览器收到这条消息,并询问用户的证件(通常是用户名和密码); 4)Web 浏览器通过这些证件来访问服务器资源: 5)如果证件无效,则重新回到第 2 步; 6)通过认证后,浏览器便能够访问这些资源。 使用 Basic 认证时,用户名和密码都是以纯文本的方式通过网络传递给服务器,存在安全隐患。 Digest 认证的工作原理与 Basic 认证类似,但对传送的用户名和密码进行加密。 NTLM 认证时,将不会提供用户输入证件,在 浏览器连接到服务器后,它便将加密后的、用户登录计算机时使用的用户名和密码信息发送给服务器。 采用哪种 Windows 认证方法,在 IIS 中做相应设置即可。 ② 表单认证 使用表单验证时,用户被引导到 Web 站点的一个登录表单,通过该表单,用户可以提供其证件。 如果应用程序根据自定义的方案认可了证件, 将在运行浏览器的计算机上创建一个认证 Cookie,该 Cookie 包含某种格式的证件或可用来获得证件的字符串。 以后,整个应用程序都将使用该 Cookie 来进行授权。 整个过程步骤如下: 1)客户向站点请求被保护的页面 ; 2)如果请求没有包含有效的认证 Cookie, Web 服务器将把用户重定向到 文件中 Authentication 标签的 loginURL 属性中指定的 URL,该 URL 包含一个供用户登录的表单; 3)证件被输入到表单中,并通过表单传送被提交; 4)如果证件有效, 将在客户机上创建一个认证 Cookie。 5)用户便能够被重定向到最初请求的页面。 启用表单验证需要在 中进行如下设置: configuration authentication mode= Form forms name=name loginUrl=loginForm credentials PasswordFormat=MDS) user name=username password=pwd/ 2 .NET 框 架技术研究 16 /credentials /forms /authentication / /configuration 其中 Credentials 属性可以省略,该属性提供了用于认证的用户名和密码定义。 Credentials 配置 段包含认证时 使用的有效用户身份。 PasswordFormat 指定了发送证件给服务器时采用的加密方法,该属性的取值可以是 clear, MDS 和 表示不加密, MDS 和 SHAI 是两种加密算法。 User 元素指定了有效的用户证件。 设置好 ,在代码中控制验证需要用到FormsAuthentication 对象,该对象有四个重要的方法: 1) SetAuthCookie:设置认证 Cookie;。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。