我有一个巨大的、经典的ASP应用程序,成千上万的用户管理他们的公司/业务数据。目前,这不是多用户,因此应用程序用户可以创建用户并授权他们访问系统中的某些区域。
我正在考虑编写一个处理程序,它将充当客户机和服务器之间的中间人,并遍历每个请求,找出用户是谁,以及他是否被授权访问他试图访问的数据。
暂时忽略我要如何检查授权和其他东西的部分。我只想知道我是否能够实现一个ASP.net处理程序,并使用它作为中间人来请求一个asp网站?我只想阅读url,看看页面用户想要访问什么,以及他在url中传递的参数是什么,即已发布的数据。这个是可能的吗?我读到,Asp.net处理程序不能与asp网站一起使用,为此我需要使用isapi过滤器或扩展,并且只能开发c/c++。
有没有人能通过一些光线指引我,无论我是否在正确的方向?
发布于 2012-08-23 14:51:34
.Net处理程序不能与ASP一起使用,因为IIS只能为每个请求将请求传递给一个处理程序。ASP和.Net有不同的处理程序。
如果您想要编写一个.Net HTTPModule来充当中间的人,则请求的处理程序必须是.Net。
我还没有试过,但是我估计如果您随后编写了一个.Net HTTPHandler来服务ASP页面(基本上它只是以VBScript的形式运行ASP ),那么请求和响应对象就会变得复杂。可能比它的努力更值得尝试。
一个ISAPI过滤器将是最直截了当的方式,但可能是不切实际的,如果你没有C++的经验。但是,您正在做的事情听起来并不是特别新的领域,您可能可以使用现有的实现。
发布于 2012-08-23 17:55:14
如果您在IIS7上,您可以编写一个.NET HTTP,并在经典的.NET请求管道中使用该模块。主要的挑战将是如何确定谁是登录到您的经典ASP应用程序从ASP.NET。
如果你在IIS6上,你唯一的选择就是ISAPI。
HttpHandlers解决了一个不同的问题--它们在模块过滤和修改之后处理请求。它们不适合这种过滤函数。
https://softwareengineering.stackexchange.com/questions/154102
复制相似问题