2010-06-08 100 views
1

我正在尝试将ASP.NET安全与经典​​ASP集成。 像在下一篇文章 - http://weblogs.asp.net/scottgu/archive/2007/03/04/tip-trick-integrating-asp-net-security-with-classic-asp-and-non-asp-net-urls.aspx,但我有IIS 7.0,而不是IIS 6.0中的例子。IIS 7.0上的经典ASP的表单身份验证

您可以在下面找到我的配置文件(添加通配符脚本标签后)

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <handlers accessPolicy="Read, Script"> 
      <add name="ISAPI x64" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> 
      <add name="ISAPI x32" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> 
     </handlers> 
    </system.webServer> 

<system.web> 
    <authentication mode="Forms"> 
    <forms loginUrl="Login.aspx"></forms> 
    </authentication> 
</system.web> 

<location path="page.asp"> 
    <system.web> 
    <authorization> 
    <deny users="?" /> 
    <allow users="*" /> 
    </authorization> 
    </system.web> 
</location> 

<location path="default.asp"> 
    <system.web> 
    <authorization> 
    <deny users="?" /> 
    <allow users="*" /> 
    </authorization> 
    </system.web> 
</location> 
</configuration> 

但应用程序调用ASP页面没有任何身份验证。

我之前没有使用过传统的ASP,因此我一直在寻找任何可以帮助我的信息。

我发现了另一篇感兴趣的文章http://support.microsoft.com/kb/891028 - “使用表单身份验证保护传统ASP页”部分。 不错的解决方案,但在这种情况下,我需要在每个页面上实现安全代码(ASP脚本代码)。

下一个短语是否意味着第一个解决方案不起作用?

与保护窗体身份验证传统的ASP页面不被设计支持,因为ASP和ASP.NET使用不同的处理程序...

任何人都可以选择我的解决方案/办法做到基于窗体身份验证IIS 7.0上的经典ASP?

回答

1

您可以使用IIS 7集成模式执行此操作,如here所述。

+0

是的,谢谢你,我在这里看到了这个解决方案-http://forums.asp.net/t/1427825.aspx。我插入了 标记,而不是三个模块标记,它的工作原理是一样的。你知道runAllManagedModulesForAllRequests =“true”的缺点吗? – 2010-06-08 16:36:54

+0

是的,这意味着所有托管模块都将运行所有请求,这可能会对性能产生负面影响,具体取决于您的应用程序的性能如何,如果您按照文章所述(仅验证模块),那么托管代码模块将不运行ASP(例如,ASP.NET Windows验证,ASP.NET输出缓存,ASP.ENT会话状态等,这些在您的场景中无用) – 2010-06-24 04:33:01