让我们考虑一个示例网站应用程序并在本地 host.say 中运行,例如www.asdf.com。当用户在浏览器中点击 url
可以通过继承ihttp处理程序或者ihttp模块到我们的类来捕获吗
如果通过更改www.asdf.com?t=value 访问了 url,是否可以采用该值。
在java中,这个概念被用作servelet过滤器。dotnet中是否有类似的东西
等待您的回复
让我们考虑一个示例网站应用程序并在本地 host.say 中运行,例如www.asdf.com。当用户在浏览器中点击 url
可以通过继承ihttp处理程序或者ihttp模块到我们的类来捕获吗
如果通过更改www.asdf.com?t=value 访问了 url,是否可以采用该值。
在java中,这个概念被用作servelet过滤器。dotnet中是否有类似的东西
等待您的回复
模块和处理程序做两种不同的事情。
FormsAuthenticationModule
响应AuthorizeRequest
(以及其他)事件,它检查是否有身份验证票证,验证它,然后指示当前用户是否经过身份验证(以及谁)的上下文。Page
处理程序处理,该处理程序解析并执行 ASPX 及其关联的代码隐藏(如果有的话)。模块和处理程序都可以访问HttpContext
对象,这允许它们检查并在许多情况下操纵当前应用程序、当前请求和响应、用户等。所以是的,它们都可以访问请求期间提供的查询字符串值。
我相信模块最类似于 servlet 过滤器。
该模块查找t
查询字符串并在每个请求的开头回显它。
public class MyModule : IHttpModule {
public String ModuleName {
get { return "MyModule"; }
}
public void Init(HttpApplication application) {
application.BeginRequest += (new EventHandler(this.Application_BeginRequest));
}
private void Application_BeginRequest(Object source, EventArgs e) {
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Write(string.Format("The value of \"t\" is {0}", context.Request.QueryString["t"]);
}
public void Dispose()
{
}
}