可以使用HTTPModules保护经典ASP应用程序吗?

时间:2009-01-29 17:05:03

标签: asp.net asp-classic single-sign-on httpmodule isapi

我目前使用在IIS 6上运行的ASP.NET Forms Authentication来保护经典ASP应用程序,问题是我们的目的是要求此应用程序使用Entrust TruePass实现单点登录安全模型,该模型使用我相信的客户端证书。这可以使用ASP.NET Http Modules实现,还是必须编写ISAPI过滤器?还有其他选择吗?

2 个答案:

答案 0 :(得分:3)

为了激活HttpModule,您必须让IIS将请求发送到aspnet_isapi.dll然后再发送常规的asp.dll。在大多数情况下,如果.net中有端点,它将不会将请求传递回IIS,但在IIS6中,您可以为通配符定义处理程序,请参阅本文,使用表单身份验证保护非.net内容https://web.archive.org/web/20111127051259/http://www.15seconds.com/issue/070104.htm

那么你要做的就是创建你的模块,在web.config中注册并使用它来进行身份验证,只要终点与任何东西都不匹配.net会处理然后它应该让它回到IIS转到asp.dll

[以上链接是通过Internet Archive 2011年11月。文章之前是http://www.15seconds.com/issue/070104.htm]

答案 1 :(得分:1)

首先请允许我声明我对HTTPModules一无所知,但我认为您可以编写自己的IHttpModule实现来处理TruePass。有关详细信息,请参阅此链接:MSDN HttpModules

根据我的经验,在经典ASP和.NET之间来回的最大麻烦是处理会话信息。存储在经典ASP会话变量中的内容无法由.NET读取,反之亦然。但由于您的FormsAuthentication最有可能使用cookie,因此您现在可以来回使用。

我不确定其他选择。如果您的业务要求是保留经典的asp代码并使用TruePass,那么我认为您可以使它工作。

希望有所帮助。