可以经典的ASP,由ASP .net处理

本文关键字:ASP net 处理 经典 | 更新日期: 2023-09-27 17:54:00

我在。net中编写了一个简单的HttpModule,用于根据非。net文件的数据库对用户进行身份验证。

在iis6中,我已经将。htm和。pdf扩展名映射到C:'WINDOWS'Microsoft.NET'Framework'v2.0.50727'aspnet_isapi.dll执行,一切都运行良好。

现在我不想为经典asp页面做同样的事情,但是。asp扩展已经映射到C:'WINDOWS'system32'inetsrv'asp.dll,并将其映射到C:'WINDOWS'Microsoft.NET'Framework'v2.0.50727'aspnet_isapi.dll是不工作的,因为在。net中没有经典asp的构建提供商。

这是我的网站。配置文件如下:

    <system.web>
    <authorization>
        <deny users "?" />
    </authorization>
    <compilation>
        <buildProviders>
            <add extension=".asp" type="System.Web.Compilation.PageBuildProvider" />
            <add extension=".htm" type="System.Web.Compilation.PageBuildProvider" />
            <add extension=".pdf" type="System.Web.Compilation.IgnoreFileBuildProvider" />
        </buildProviders>
    </compilation>
    <httpHandlers>
        <add path="*.asp" verb="*" type="System.Web.UI.PageHandlerFactory" validate="false"/>
        <add path="*.htm" verb="*" type="System.Web.UI.PageHandlerFactory" validate="false"/>
        <add path="*.pdf" verb="*" type="System.Web.StaticFileHandler" validate="false"/>
    </httpHandlers>
    <httpModules>
        <add name="MyAuthenticationModule" type="Authentication.MyAuthenticationModule, Authentication"/>
    </httpModules>
</system.web>

有解决方案吗?

可以经典的ASP,由ASP .net处理

Net在大多数情况下将而不是正确地解释经典ASP文件。如果您有一个非常简单的经典ASP页面,可能只有几个非常简单的服务器表达式,如<%=Date() %>或两个,您可能会非常幸运地发现代码仍然可以工作……但我不指望它。

你可以有经典的ASP页面生活在同一个IIS网站作为ASP。Net页面,但是您仍然需要配置这些页面,以便经典的ASP解释器负责它们。您还可以配置在IIS级别进行身份验证,或者配置ASP。Net和ASP经典地共享一个身份验证令牌/cookie,以便用户登录到ASP。Net站点和经典ASP页面仍然受到该单一身份验证事件的保护。然而,设置并正确地工作并不是一个简单的操作。