下面是类的定义。
复制代码 代码如下:
using System;
using System.Web;
using System.Web.SessionState;
namespace QTJZ
{
public class Filters : IHttpModule, IRequiresSessionState
{
public void Dispose() { }
public void Init(HttpApplication application)
{
application.AcquireRequestState += new EventHandler(application_AcquireRequestState);
}
public void application_AcquireRequestState(object sender, EventArgs e)
{
HttpApplication application = sender as HttpApplication;
HttpRequest request = application.Request;
HttpResponse response = application.Response;
string url=request.CurrentExecutionFilePath.Trim('http://www.vevb.com/');
string suffix = request.CurrentExecutionFilePathExtension.Trim('.');
if (!url.Equals("Default.htm") && (suffix == "aspx" || suffix == "htm"))
{
object sessionObj = application.Context.Session == null ? null : application.Session["useID"];
if (sessionObj==null)
{
response.Redirect("~/Default.htm");
}
}
}
}
}
BeginRequest在 ASP.NET 响应请求时作为 HTTP 执行管线链中的第一个事件发生。
AuthenticateRequest当安全模块已建立用户标识时发生。
AuthorizeRequest当安全模块已验证用户授权时发生。
ResolveRequestCache
在 ASP.NET 完成授权事件以使缓存模块从缓存中为请求提供服务后发生,
从而绕过事件处理程序(例如某个页或 XML Web services)的执行。
AcquireRequestState当 ASP.NET 获取与当前请求关联的当前状态(如会话状态)时发生。
PreRequestHandlerExecute恰好在 ASP.NET 开始执行事件处理程序(例如,某页或某个 XML Web services)前发生。
PostRequestHandlerExecute在 ASP.NET 事件处理程序(例如,某页或某个 XML Web service)执行完毕时发生。
ReleaseRequestState在 ASP.NET 执行完所有请求事件处理程序后发生。 该事件将使状态模块保存当前状态数据。
UpdateRequestCache当 ASP.NET 执行完事件处理程序以使缓存模块存储将用于从缓存为后续请求提供服务的响应时发生。
EndRequest在 ASP.NET 响应请求时作为 HTTP 执行管线链中的最后一个事件发生。
复制代码 代码如下:
<httpModules>
<add type="QTJZ.Filters"/>
</httpModules>
新闻热点
疑难解答
图片精选