ASP.NET IIS7.x 和表单验证

       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 管理控制台的验证配置特性配置表单验证:

       image

       以这种方式启用表单验证后,还必须配置希望的验证规则。其中最重要的一点是通过 IIS 7.x 管理控制台的授权配置特性为所有匿名用户添加一个“拒绝”规则:

       image

       这两个配置都会影响 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 配置。

原文地址:https://www.cnblogs.com/SkySoot/p/3006794.html