ASP.NET页面揭秘(二)
这里主要谈谈Application类中的事件
由前一篇文章可以知道,一旦出现了HttpContext类的一个实例,HttpRuntime类就会建立一个ASP.NET应用程序对象来完成该请求。一个应用程序包括HttpApplication类的一个实例。HttpApplication是一个global.asax派生的对象,处理所有被传递给某个虚文件夹得Http请求。一个正在运行的ASP.NET运行程序完全由它的虚拟文件来表示,并选择性地global.asax文件来表示。虚拟文件夹名称是一种键,Http运行库用它来选择表示哪一个正在运行的应用程序应当负责输入请求。Global.asax包含一些设置和代码,用于响应ASP.NET引发的或者影响该应用程序的HTTP模块注册的应用程序级事件。只有完成请求以后才能重用HttpApplication的实例。如果没有HttpApplication对象可以使用,则创建一个新的HttpApplication对象,并把它放入到对象池中。
HttpApplication类的事件
HttpApplication_Start在Web应用程序的生命周期内只激发一次。它表示已经创建HttpApplication类的第一个实例,以启动服务它的第一个请求。Application_End只在应用程序被关闭时才被调用。
HttpApplication有许多事件,以下是按照事件先后激发顺序。
1. 对请求进行验证,将检查浏览器发送的信息,并确定其是否包含潜在恶意标记。
2. 如果已在 Web.config 文件的 UrlMappingsSection 节中配置了任何 URL,则执行 URL 映射
3. BeginRequest ASP.NET HTTP管道开始处理该请求。该事件在Application_Start之后到达应用程序。
4. AuthenticateRequest 正在验证请求。所有的内部ASP.NET验证模块都订阅该事件,并企图产生一个标识。如果没有一个验证模块产生一个已验证用户,则调用一个默认的内部验证模块,为这个未验证的用户产生一个标识。这么做是为了一致性,使该代码不必考虑null值。
5. PostAuthenticateRequest请求已被验证。所有可能的信息存储在HttpContext的User属性中。
6. AuthorizeRequest 即将发生请求授权。该事件通常被应用程序的代码进程处理,以根据业务逻辑或其它应用程序需求完成定制的授权。
7. PostAuthorizeRequest该请求已被授权
8. ResolveRequestCache ASP.NET运行库验证返回一个以前缓存的页面能否解决该请求。如果找到一个有效地缓存标识,则从该缓存中服务该请求,并缩短该请求的处理过程,只调用任何已注册的EndRequest处理程序。
9. PostResolveRequestCache 请求
相关文档:
ASP.NET中前台javascript与后台代码调用
2010-03-31 10:01
.net中C#代码与javaScript函数的相互调用问题。
问:
1.如何在JavaScript访问C#函数?
2.如何在JavaScript访问C#变量?
3.如何在C#中访问JavaScript的已有变量?
4.如何在C#中访问JavaScript函数?
问题1答案如下:
javaScript函 ......
验证码控件WebValidates的使用步骤如下:
1. 将验证码控件放入工具箱。(直接拖动DLL放到工具箱即可)
2. 拖放控件到页面相应位置。
3. 页面初始化时,编程生成验证码(假设验证码控件ID为snCode)。
snCode.Create();//首次加载生成新验证码
4. 编码对比用户的输入(假设用户输入验证码的文本框ID是txtCode ......
先说我自己最笨的方法就是用Cookie!登陆时加一个userId在cookie里,然后删除文件重登时,如果session为空就取cookie去赋session!...如果大家不喜欢就用以下方法:
最简单的办法就是不要使用默认的方式也即
InProc(默认,进程内的会话状态):Session存储在IIS进程中(Web服务器内存)。如果使用的是Windows 20 ......
点击按钮上传FileUpload的图片
protected void Button3_Click(object sender, ImageClickEventArgs e)
{
if (FileUpload1.HasFile)
{
&nbs ......