gpt4 book ai didi

asp.net - 添加 IIS 模块后 ASP Classic Request.Form 为空

转载 作者:行者123 更新时间:2023-12-02 10:03:47 25 4
gpt4 key购买 nike

这让我发疯。我有一个 Web 应用程序,它是 ASP.NET MVC 3 和经典 ASP 的混合体。经典 ASP 代码非常古老,对于防止跨站点脚本或任何其他漏洞并没有真正起到多大作用。为了向经典 ASP 页面添加一点安全性,我创建了一个 IIS 模块,该模块将在经典 ASP 处理 HTTP 请求之前拦截该请求,并触发该请求的 ASP.NET 验证。这是:

public class RequestValidationModule : IHttpModule
{
public void Dispose()
{

}

public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
}

void context_PreRequestHandlerExecute(object sender, EventArgs e)
{
var context = HttpContext.Current;
if (context != null)
{
var request = context.Request;
if (request != null)
{
string path = request.CurrentExecutionFilePathExtension;
if(string.Equals(path, ".asp", StringComparison.OrdinalIgnoreCase))
{
//access request collections to trigger request validation
var form = request.Form;
var qs = request.QueryString;
var c = request.Cookies;
var h = request.Headers;
}
}
}
}
}

这个模块工作得很好。然而,如果发送了有效的请求,经典 ASP 代码中的对象 Request.Form 始终为空!我无法获取表单(或查询字符串)中提交的任何值。一旦我从 web.config 中删除模块,request.form 就会再次填充。

这是一个在 IIS 7.5 集成模式下运行的 ASP.NET MVC 3 应用程序。所有 asp 页面都位于 MVC 3 应用程序内的一个目录中。

最佳答案

我也遇到过这个问题。对于Classic ASP,应该将其放置在另一个应用程序池中。否则,Request.form 不起作用

关于asp.net - 添加 IIS 模块后 ASP Classic Request.Form 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11233512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com