IIS 7.x 对 ASP.NET HTTP 处理管道和 IIS HTTP 处理管道进行了整合。能够为 IIS 7.x 里配置的其他 Web 程序使用 ASP.NET 表单验证,而这些应用程序不一定是通过 ASP.NET 构建的。
IIS 7.x 把 Web 服务器中对 Web 应用程序进行的大部分配置保存到 web.config 文件里。也就是说,Web 应用程序的很多选项可以通过 IIS 7.x 管理器控制台或直接修改 web.config 文件进行配置。由于 ASP.NET 配置特性和 IIS 7.x 的紧密整合,任何针对 web.config 文件的直接修改都会立即反映到管理控制台,反之亦然。
下图是通过 IIS 7.x 管理控制台的验证配置特性配置表单验证:
以这种方式启用表单验证后,还必须配置希望的验证规则。其中最重要的一点是通过 IIS 7.x 管理控制台的授权配置特性为所有匿名用户添加一个“拒绝”规则:
这两个配置都会影响 web.config 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="DbLogin.aspx" name="MyCookieName" timeout="2" />
</authentication>
</system.web>
<system.webServer>
<security>
<authorization>
<add accessType="Deny" users="?" />
</authorization>
</security>
</system.webServer>
</configuration>
IIS 正如预期的那样在 <system.web> 节配置表单验证。不过默认情况下找不到任何授权规则。并非所有配置项都是默认直接保存到 web.config 文件中的,URL 授权就是这样的配置之一。
IIS 7.x 运行于整合模式下时(默认),IIS 使用一个 HTTP 处理管道同时处理基于 ASP.NET 的 HTTP 模块以及 IIS 7.x 的原生 HTTP 模块。也就是说,你甚至可以把表单验证用于其他类型的应用程序,如静态 HTML 站点、传统的 ASP 应用程序,PHP 应用程序。你所要做的只是把应用程序配置为一个虚拟目录,然后通过 IIS 7.x 管理控制台配置表单验证。这自动为应用程序增加一个 web.config 配置。