【问题标题】:Can classic ASP, be process by asp .net可以经典的ASP,由asp .net处理吗
【发布时间】:2014-03-27 16:48:39
【问题描述】:

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

在 IIS 6 中,我将 .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 不起作用,因为在 .asp 中没有经典 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>

有解决办法吗?

【问题讨论】:

  • 您是否能够至少升级到 IIS 7?为经典 ASP 页面的请求运行托管身份验证模块将非常容易实现。
  • 不,很遗憾我现在无法升级...很高兴知道我们升级后它会起作用

标签: c# .net iis iis-6


【解决方案1】:

ASP.Net 在大多数情况下不会正确解释经典的 ASP 文件。如果您有一个非常简单的经典 ASP 页面,可能只有几个非常简单的服务器表达式,例如 &lt;%=Date() %&gt; 或两个,您可能会非常幸运并发现代码仍然有效。 .但我不会指望它。

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

【讨论】:

  • 这个解决方案的重点是易于安装。所以没有 BuildProvider 呢?
  • @Guish,不,没有。这样做的唯一方法是迁移到 IIS 7 并使用集成管道运行 HttpModule。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
  • 2013-01-30
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多