程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0中的窗體身份驗證

ASP.NET 2.0中的窗體身份驗證

編輯:關於ASP.NET

摘要:本教程闡釋 ASP.NET 2.0 版中窗體身份驗證的工作機制;闡釋 IIS 和 ASP.NET 身份驗證如何協作,以及 FormsAuthenticationModule 類的角色與操作。

概述

窗體身份驗證使用用戶登錄到站點時創建的身份驗證票,然後在整個站點內跟蹤該用戶。窗體身份驗證票通常包含在一個 Cookie 中。然而,ASP.NET 2.0 版支持無 Cookie 窗體身份驗證,結果是將票證傳入查詢字符串中。

如果用戶請求一個需要經過身份驗證的訪問的頁,且該用戶以前沒有登錄過該站點,則該用戶重定向到一個配置好的登錄頁。該登錄頁提示用戶提供憑據(通常是用戶名和密碼)。然後,將這些憑據傳遞給服務器並針對用戶存儲(如 SQL Server 數據庫)進行驗證。在 ASP.NET 2.0 中,用戶存儲訪問可由成員身份提供程序處理。對用戶的憑據進行身份驗證後,用戶重定向到原來請求的頁面。

窗體身份驗證處理由 FormsAuthenticationModule 類實現,該類是一個參與常規 ASP.NET 頁處理循環的 HTTP 模塊。本文闡釋 ASP.NET 2.0 中窗體身份驗證的工作機制。

IIS 身份驗證

ASP.NET 身份驗證分為兩個步驟。首先,Internet 信息服務 (IIS) 對用戶進行身份驗證,並創建一個 Windows 令牌來表示該用戶。IIS 通過查看 IIS 元數據庫設置,確定應該對特定應用程序使用的身份驗證模式。如果 IIS 配置為使用匿名身份驗證,則為 IUSR_MACHINE 帳戶生成一個令牌並用它表示匿名用戶。然後,IIS 將該令牌傳遞給 ASP.NET。

其次,ASP.NET 執行自己的身份驗證。所使用的身份驗證方法由 authentication 元素的 mode 屬性指定。以下身份驗證配置指定 ASP.NET 使用 FormsAuthenticationModule 類:

<authentication mode="Forms" />

注 由於窗體身份驗證不依賴於 IIS 身份驗證,因此如果要在 ASP.NET 應用程序中使用窗體身份驗證,則應該在 IIS 中為應用程序配置匿名訪問。

ASP.NET 窗體身份驗證

ASP.NET 窗體身份驗證在 IIS 身份驗證完成後發生。可以使用 forms 元素配置窗體身份驗證。

窗體身份驗證配置

以下配置文件片段顯示窗體身份驗證的默認屬性值。

<system.web>
 <authentication mode="Forms">
  <forms loginUrl="Login.aspx"
      protection="All"
      timeout="30"
      name=".ASPXAUTH"
      path="/"
      requireSSL="false"
      slidingExpiration="true"
      defaultUrl="default.aspx"
      cookieless="UseDeviceProfile"
      enableCrossAppRedirects="false" />
 </authentication>
</system.web>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved