经典ASP,可以通过asp .net进行处理

时间:2014-03-27 16:48:40

标签: c# .net iis iis-6

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

在IIS 6中,我将.htm和.pdf扩展名映射为C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll执行,一切运行良好。

现在我不想对Classic asp页面做同样的事情但是.asp扩展名已经映射到C:\WINDOWS\system32\inetsrv\asp.dll并且将它映射到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll是行不通的,因为没有构建提供程序.net中的经典ASP。

以下是我的web.config文件的样子:

    <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>

有解决方案吗?

1 个答案:

答案 0 :(得分:0)

ASP.Net大部分将正确解释经典ASP文件。如果您有一个非常简单的经典ASP页面,可能只有一些非常简单的服务器表达式,例如<%=Date() %>或两个,您可能会非常幸运并发现代码仍然有效......但我不会指望它。

您可以将经典ASP页面存放在与ASP.Net页面相同的IIS网站中,但您仍需要配置这些页面,以便经典的ASP解释器负责它们。您还可以将身份验证配置为在IIS级别进行,或者将ASP.Net和ASP classic配置为共享身份验证令牌/ cookie,以便用户登录到ASP.Net站点一次,并且经典ASP页面仍受此保护单一认证事件。但是,设置和正常工作是一个简单的操作。

相关问题