让我们考虑一个示例网站应用程序并在本地host.say中运行,例如 www.asdf.com 。用户何时在浏览器中点击网址
可以通过将ihttp处理程序或ihttp模块继承到我们的类来捕获它吗
如果通过更改 www.asdf.com?t=value 来更新网址,则可以获取该值。
在java中,这个概念用作servlet过滤器。在dotnet中有没有类似的东西
等待你的回复
答案 0 :(得分:1)
模块和处理程序做两件事。
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()
{
}
}