共用方式為


表單驗證控制流程

更新:2007 年 11 月

下表中顯示 ASP.NET 表單驗證的控制流程。

瀏覽器和 HTTP 作業

伺服器回覆

要求伺服器上受保護的資源。HTTP 作業為:

GET /default.aspx

當沒有驗證 Cookie 時,將要求重新導向至登入網頁以收集認證。有關起始網頁的資訊是使用 RETURNURL 當做金鑰放入查詢字串中。伺服器 HTTP 回應為:

302 Found
Location: http://samples.microsoft.com/logon.aspx?RETURNURL=/default.aspx

依照新導向而連結至登入網頁。HTTP 作業為:

GET /logon.aspx?RETURNURL=/default.aspx

返回至登入網頁。基於安全性考量,建議您在登入網頁使用 Secure Sockets Layer (SSL) 以避免使用純文字傳送使用者的認證。伺服器 HTTP 回應為:

200 OK

在使用者將認證輸入登入網頁後送出網頁。HTTP 作業為:

POST /logon.aspx?RETURNURL=/default.aspx

驗證使用者認證,以及如果認證通過驗證後,將瀏覽器重新導向至 QueryString 中指定當做 RETURNURL 變數的原始 URL。根據預設,驗證票證是以 Cookie 的形式發出。

注意事項:
您可以指定驗證票證要包含在 URL,而不是包含在使用 CookieMode 屬性的 Cookie 中。

伺服器 HTTP 回應為:

302 Found
Location: /default.aspx

依照重新導向進行連結並再次要求原始的資源。HTTP 作業為:

GET /default.aspx

如果使用者通過驗證,則授與存取權,並授與包含驗證票證的驗證 Cookie。當模組檢查 Cookie 時,同時也會驗證由同一個瀏覽器工作階段 (Session) 所發出的要求。您可以建立供日後工作階段使用的永續性 Cookie,但 Cookie 到期後就不能再使用。伺服器 HTTP 回應為:

200 OK
Set-Cookie: ASPXTICKET=ABCDEFG12345;Path=/

請注意,Cookie 的路徑設為 /。因為 Cookie 名稱需區分大小寫,所以就能避免站台上 URL 的大小寫不一致。例如,當路徑設為 /SavingsPlan 和一個包含 /savingsplan 的連結時,因為瀏覽器不會送出 Cookie,所以會強制使用者重新驗證。

請參閱

其他資源

ASP.NET Web 應用程式安全性

表單驗證提供者