Asp.Net是什么与ASP有什么区别
Asp.Net是一种服务端技术
是.NET Framework中一种生成Web应用程序与服务的技术
是Web应用服务的编程框架
开发语言不同:Asp 局限使用脚本语言,Asp.Net 可以使用 .NET Framework规划的任一种语言
运行机制不同:Asp 是一种解释型编程框架,一边解释一边执行,无事先编译,Asp.Net 是一种编译型框架,服务器运行的是已编译好的代码
运行环境不同:Asp 在Window 与 IIS中执行,Asp.Net 在Window \IIS\.Net Framework中执行
开发方式不同:Asp 界面与逻辑混在一起,Asp.Net 界面与逻辑分离
诞生时间不同:Asp 早于Asp.Net 出现
Asp.Net 运行机制
第一访问页面时:页面首先经过HttpModuls 和 HttpHandler处理
每次Asp.net页面请求时依据不同情况,浏览器、服务器、Asp.Net引擎之间将执行四 条路线中的一条
ASP.NET 一个页面的生命周期
Page_Init — LoadViewState—LoadPostData—Page_Laod
—RaisePostDataChanged—RaisePostBackEvent
—Page_PreRender—SaveViewState—Page_Reander—UnLoad
1)对象初始化
初始化事件可以通过OnInit() 方法重载
2)加载视图状态数据
通过LoadViewState()方法重载
3)处理回传数据
创建页面阶段,发送到服务端的Form数据,依照每个控件数据需求进行处理
随后激发LoasPostData事件
4)对象加载
对象在Load事件中获取正确的Form,
通过OnLoad()方法重载
5)激发RaisePostDataChanged事件
标识上一次提交后数据是否修改
6)处理客户端回传事件
7)对象预呈现
8)保存视图状态
9)呈现HTML
10)释放
什么是web窗体,什么是web用户控件
Web窗体是一个大容器,装载了需实现的所有控件、
Web用户控件也是一个容器,功能与web窗体类似,
用户控件为可重复使用的公共功能,必须在Web窗体内才能使用
什么是ViewState,ViewState优缺点
ViewState用于把生成页面要用的状态值保存在一个隐藏域中,它能持久化客户端的状态,而不用Cookie或者服务器的内存
优点:使用简单、存储数据不受时间限制
缺点:不能执行跨页面操作,不适合存储大数据量的信息
Session、ViewState、Cookie之间的区别
Session不适用长时间保持数据,系统默认时长20分钟
ViewState用于保持单个用户状态信息,有效期等于页面生存期,不适用存储大数据
Cookie用于保存客户浏览器请求服务器页面的请求信息,不是所有浏览器都支持,并且不安全
ASP.NET常见的页面跳转方法
Response.Redirect() 浏览器重新转向指定的网页,该方法通过客户端执行,容易被篡改
和欺骗,传递数据以2KB为限
Server.Transfer() 切放到同目录或者子目录网页,使用Server.Transfer()后地址不变,隐
藏了新网页地址及附带的参数值,具有保密功能
server.Execute() 执行同一个Web服务器上的另一个页面,页面执行完毕之后重新返回
原页面,可以把新页面执行结果追加到当前页面响应中,也可手动处理
新页面的输出
Html超链接 标签是<a></a> href属性指定新页面的地址
HyperLink控件 用控件属性NavigateUrl指定跳转到的URL地址,可在服务器端修改跳转地址
Javascript脚本 如果页面跳转在客户端发送使用window.location.href=”url”;
Asp.net窗体身份验证的原理以及配置过程
Asp.net窗体验证分为两步:
IIS验证当前用户访问网站使用的Windows账号是否有权限,如果IIS访问配置为anonymous,则任何用户都能访问
IIS验证完毕开始执行自身验证,验证面试可以在web.config文件中配置
Asp.net窗体身份验证方面的控制流程
当用户成功登陆网站时,FormsAuthentication将会创建一个身份验证票,
这样可以在网站全程跟踪这个用户,实现用户验证的功能
Asp.net有几种存储会话状态的方式
会话状态的存储方式有三种,分别是InProc、StateServer、SqlServer,最常用的是InProc模式,也是Asp.net默认的方式
InProc:具有最佳性能,速度最快,但不能跨多台服务器存储共享
StateServer:用于跨服务器保存用户会话信息情况,信息易丢失
SqlServer:可跨服务器维护用户会话信息,且信息不回丢失,但工作负载较大
net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
QueryString 传递一个或多个安全性要求不高或是结构简单的数值。
但是对于传递数组或对 象的话,就不能用这个方法了
session(viewstate)
简单,但易丢失 作用于用户个人,过量的存储会导致服务器内存资源的耗尽。
application
对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock
cookie简单,但可能不支持,可能被伪造 Cookie是存放在客户端的,
而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用
input ttype="hidden" 简单,可能被伪造
url参数简单,显示于地址栏,长度有限
Server.Transfer
把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流
数据库稳定,安全,但性能相对弱