基于窗体的身份验证
基于窗体的身份验证是 ASP.NET 身份验证服务,它使应用程序能够提供它们自己的登录 UI 和进行它们自己的凭据验证。ASP.NET 验证用户的身份,将未授权的用户重定向到登录页并执行所有必要的 Cookie 管理。这种身份验证是许多 Web 站点使用的流行方法。应用程序必须被配置成使用基于窗体的身份验证,将 <authentication> 设置为 Forms 并且拒绝匿名用户访问。下面的示例说明如何在所需应用程序的 Web.config 文件中完成此配置:<configuration>
  <system.web>
    <authentication mode="Forms"/>
    <authorization>
        <deny users="?" />
    </authorization>
  </system.web>
</configuration>管理员使用基于窗体的身份验证来配置要使用的 Cookie 名称、保护类型、用于登录页的 URL、Cookie 生效的时间长度以及用于已发布 Cookie 的路径。下表显示了 <Forms> 元素(它是下面的示例中显示的 <authentication> 元素的子元素)的有效属性:<authentication mode="Forms">
   <forms name=".ASPXCOOKIEDEMO" loginUrl="login.aspx" protection="all" timeout="30" path="/">
                    <!-- protection="[All|None|Encryption|Validation]" -->
   </forms>
</authentication>
验证了凭据后,应用程序调用下列内容:FormsAuthentication.RedirectFromLoginPage(UserEmail.Value, PersistCookie.Checked);这将用户重定向回当初请求的 URL。不想执行重定向的应用程序可以或者调用 FormsAuthentication.GetAuthCookie 来检索 Cookie 值,或者调用 FormsAuthentication.SetAuthCookie 将正确加密的 Cookie 附加到输出的响应中。对于提供嵌入在包含页中的登录 UI 的应用程序,或者想要更多地控制用户被重定向到的位置的应用程序而言,这些方法很有用。身份验证 Cookie 既可以临时又可以永久(“持久”)。临时 Cookie 只在当前浏览器会话期间保持。当浏览器关闭时,临时 Cookie 随即丢失。永久 Cookie 则被浏览器保存,并在浏览器会话间回发,直到被用户显式删除。