Web窗体(WebForm)

一.简介

0. 页面的生命周期。

1. WebForm后台页面类继承于Page类,Page类实现了IHttpHandler接口。

2. 前台页面类继承于后台页面类。

3. 先调用PageLoad方法,再调用Render方法生成html代码。

. 加密安全

互联网没有绝对的安全,登录框内输入用户名和密码,在请求报文里面都能看到,为避免这种情况发生,提高安全性能,可以用两种方式来处理:

1. HTTPS协议(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

2. 自己写安全插件,例如,支付宝安全控件。

. Request的一些成员

1. 防止图片盗链:可通过Request.UrlReffer,可通过此属性的值获取图片请求页面的地址,判断地址是否为本服务器的页面,如果不是,则判断为图片盗链处理,对于处理图片盗链,可以加水印或者替换成自己网站的宣传广告图片。

2. Request.UserHostAddress获取访问者的IP地址,通过socket获得。

. Response的一些成员

1. Response.BufferOutPut,关闭缓冲区。

2. Response.Flush,一次性把缓冲区的内容释放出来。

3. Response.Clear,清空缓冲区。

4. Response.ContentEncoding输出流的编码。

5. Response.ContentType,输出流的内容类型,比如是,html(text/html)还是普通文本(text/plain),还是jpg图片(image/JPEG)。

6. Response.OutputStream,输出流,在输出图片、Excel文件等非文本内容的时候用到它。

7. Response.End,终止响应。End()之后的代码不会被继续执行,End方法里调用了Flush()方法。在终止一些非法请求的时候,比如盗链等可以用End()立即终止请求。

. Server属性

1. MapPath,取得文件的物理路径。

2. Execute(服务器端包含)和Transfer,执行另一个页面的脚本。

(1)Execute(服务器端包含)可以用来处理页面分块,填补重复出现的内容,比如页脚。

(2)Transfer(服务器端跳转)后的代码都不再运行,内部也用到了Response.End。

3. HtmlEncode和HtmlDecode,将文本编码成可以在浏览器中正确浏览的格式。

4. UrlEncode和UrlDecode,URL编码和解码。

. 状态保持方案

无状态Http和有状态Http

状态保持方案:

客户端:

(1)ViewState,隐藏域(存于表单里)。

(2)Hidden Field,隐藏域。

(3)Cookies,浏览器缓存。

(4)ControlState,隐藏域。

(5)Querystring,url。

服务器端:

(1)Session,单用户会话。

(2)Application Object,多用户会话。

(3)Caching,多用户会话。

(4)DB,数据库。

七.Cookie

1. 两种存储方式:缓存Cookie(浏览器缓存,存在于内存)和硬盘Cookie(存在于硬盘),给Cookie加失效时间Cookie会存在于硬盘中,没有加失效时间则会存在于浏览器缓存。

2. 当浏览器再次访问这个站点的时候,浏览器会自动发送Cookie给服务器。

3. 同一个网站可以发送多个Cookie,当服务器向浏览器发送的响应报文中,包含多个Cookie的话,那么浏览器创建的Cookie文件中就用*分割多个Cookie内容。

4. 可以指定Cookie发送的路径(当访问网站的某个文件夹的时候才会发送)。

5. 浏览器不能发送Cookie的失效时间。

6. Cookie的两个属性:

(1)Cookie.Path(为指定文件夹生成Cookie)

(2)Cookie.Domain(域/域名)

7. Coolie的退出

再写一个同名的Cookie,失效时间写成已失效则可以进行覆盖。

8. cookie.value,取出cookie的值。

八.Session

1. Session池,键值对。

2. Session也是context对象里的,Page类中封装,更方便访问。

3. Session机制

(1)SessionId用Cookie的方式发送到浏览器端。格式类似于,Set-Cookie:SessionId=101,Cookie以浏览器缓存方式存储,浏览器关闭SessionId则会消失。

(2)Session信息存在Cookie中,所以本质上还是对Cookie的使用,如果浏览器禁用Cookie,Session则不发挥作用。

(3)为了防止禁止Cookie导致Session失效,.NET可以在configur中配置(<sessionState cookieless="AutoDetect"></sessionState>),服务器可以通过URL将SessionId传给浏览器。

(4)Session机制是.NET框架自己实现的,不是HTTP协议里面的东西。PHT,JAVA也都是自己实现Session机制的。

4. Session的使用和销毁

(1)Session.Abandon(),销毁服务器端的Session对象。(可以作用于“退出”功能的实现)

(2)Session.Clear(),清空服务器端的Session对象里的键值对,Session对象并没有从Session池中销毁。

(3)凡是要访问Session对象的页面,必须实现IRequiresSessionState接口,给该页面类贴上标签。

(4)销毁之后,SessionId还存在于浏览器端的Cookie中,浏览器还是会发送SessionId给服务器端,只不过在服务器端中的Session被销毁了。

时间: 2024-11-07 23:17:10

Web窗体(WebForm)的相关文章

有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代

有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 关于

MySql 服务器 创建Web窗体

1.创建Web窗体: 选择的是Visual C# 2. 3. 4. 5. 6.

ASP.NET.4 高级程序第4版 第3章Web窗体

3.1 页面处理 1.Web应用程序是在服务器上面执行的.浏览器把客户的信息发送给服务器.ASP.NET接受到这个页面后,就会触发相应的服务器端事件来通知你的程序代码. 2.Web应用程序是无状态的. 视图状态记录着客户段的状态. 3.1.1 HTML表单,一个HTML页面有两个text .提交时会提交FistName=value,LastName=value. 在ASP中  string fistName=Request.Form["FistName"] 在ASP.NET中可以 st

如何弹出一定的大小的web窗体?

如何弹出一定的大小的web窗体? 摘自: http://blog.163.com/[email protected]/blog/static/17044246920108413348344/ 一.window.open用法 1.window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 2.基本语法:window.open(pageURL,name,parameters) 其中:pageURL 为子窗口路径 name 为子窗口

asp.net 学习(1) web窗体

1.首先新建一个asp.net web应用程序,选择空模板,默认的建立的目录如下 2.新建web窗体文件,此时将会生成三个文件,web窗体文件本身aspx,代码隐藏类文件cs,和设计器文件 3.通过标准代码片段来呈现页面 4.使用内容代码片段,来呈现页面,该方式把相关的逻辑都移入到了代码隐藏类文件中 5.使用数据绑定代码片段,这次我们来用控件repeater来遍历数组 效果如下: 如果想用已编译数据绑定代码片段则应该使用 6.使用属性代码片段,该方法在Web.config文件中添加一些元素,在W

Web窗体(WebForm)的删除和修改

http://files.cnblogs.com/HuoAA/Web%E7%AA%97%E4%BD%93%EF%BC%88WebForm%EF%BC%89%E7%9A%84%E5%88%A0%E9%99%A4%E5%92%8C%E4%BF%AE%E6%94%B9.rar

009-程序集路径Web窗体

1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="t1_HelloWorld.Index" %> 2 <%@ Import Namespace="System.Reflection" %> 3 4 <!DOCTYPE html> 5 6 <html

ASP.NET WEB窗体aspx 展示用户列表

1 <body> 2 <table> 3 <caption>用户信息表</caption> 4 <tr> 5 <td colspan="5" style="text-align:left;padding-left:10px;" title="用户数据添加"><a href="userAdd.htm">用户数据添加</a></t

如何:对 Web 窗体使用路由

配置用于路由的 ASP.NET 网站项目 1. 在应用程序的 Web.config 文件中,将 ASP.NET 路由程序集添加到 assemblies 元素,如下面的示例所示: <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 2. 如果应用程序在 IIS 6.0 或 IIS 7.0 经典模型下运行,则将 UrlRou