ASP.NET 2 和 IIS 7.0 发生不兼容变化

  • Jonathan Allen
  • 张海龙

2007 年 12 月 26 日

话题:.NETWeb框架语言 & 开发

IIS 7.0 的主要部分已被重新编写,重写的大部分都涉及到新的集成模式,该模式允许.NET 模组可以在 IIS 管道的任何阶段挂接进来。然而,当我们让 ASP.NET 运行于这一集成模式时,就会曝露出一些无法兼容的改变。

  • 传统的 HTTP Module 和 Handler 必须在 web.config 文件中重新进行配置;
  • 不再支持 BeginRequest 和 AuthenticateRequest 阶段中的身份模拟(Impersonation);
  • 应用再也不能同时使用 Form 和 Windows 身份证验;

  • 非标准 Http 客户端在使用 Windows 身份验证时可能会遇到问题,因为身份验证的功能已移至内核中;
  • 其它在某些特定时刻引发的认证问题,如当客户端正在进行身份模拟时;

  • 不再支持全局事件方法 DefaultAuthentication_OnAuthenticate,事件 WindowsAuthentication_OnAuthenticate 也不再是每次都会被触发;
  • Passport 验证已被彻底标识为过期,与以前所有的不兼容变化所不同的是,这一功能将彻底失效,即使以传统模式运行 IIS,Passport 也不再有效。

欲查看全部的不兼容改变,请浏览Mike Volodarsky 的发贴

查看英文原文Breaking Changes for ASP.NET 2 and IIS 7
.NETWeb框架语言 & 开发