我目前使用在IIS 6上运行的ASP.NET Forms Authentication来保护经典ASP应用程序,问题是我们的目的是要求此应用程序使用Entrust TruePass实现单点登录安全模型,该模型使用我相信的客户端证书。这可以使用ASP.NET Http Modules实现,还是必须编写ISAPI过滤器?还有其他选择吗?
答案 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,那么我认为您可以使它工作。
希望有所帮助。