表單驗證控制流程
更新:2007 年 11 月
下表中顯示 ASP.NET 表單驗證的控制流程。
瀏覽器和 HTTP 作業 |
伺服器回覆 |
---|---|
要求伺服器上受保護的資源。HTTP 作業為:
|
當沒有驗證 Cookie 時,將要求重新導向至登入網頁以收集認證。有關起始網頁的資訊是使用 RETURNURL 當做金鑰放入查詢字串中。伺服器 HTTP 回應為:
|
依照新導向而連結至登入網頁。HTTP 作業為:
|
返回至登入網頁。基於安全性考量,建議您在登入網頁使用 Secure Sockets Layer (SSL) 以避免使用純文字傳送使用者的認證。伺服器 HTTP 回應為:
|
在使用者將認證輸入登入網頁後送出網頁。HTTP 作業為:
|
驗證使用者認證,以及如果認證通過驗證後,將瀏覽器重新導向至 QueryString 中指定當做 RETURNURL 變數的原始 URL。根據預設,驗證票證是以 Cookie 的形式發出。
注意事項:
您可以指定驗證票證要包含在 URL,而不是包含在使用 CookieMode 屬性的 Cookie 中。
伺服器 HTTP 回應為:
|
依照重新導向進行連結並再次要求原始的資源。HTTP 作業為:
|
如果使用者通過驗證,則授與存取權,並授與包含驗證票證的驗證 Cookie。當模組檢查 Cookie 時,同時也會驗證由同一個瀏覽器工作階段 (Session) 所發出的要求。您可以建立供日後工作階段使用的永續性 Cookie,但 Cookie 到期後就不能再使用。伺服器 HTTP 回應為:
請注意,Cookie 的路徑設為 /。因為 Cookie 名稱需區分大小寫,所以就能避免站台上 URL 的大小寫不一致。例如,當路徑設為 /SavingsPlan 和一個包含 /savingsplan 的連結時,因為瀏覽器不會送出 Cookie,所以會強制使用者重新驗證。 |