呵呵,說了這麼久的 Membership ,居然在這裡才來說 Forms 驗證模式,
真是丟臉啊,不過呢,也好,可以藉著這裡回味一下 Froms 機制,
順便來給測試一下 Froms 驗證模式下的 Cookie 到底是怎麼一回事,
首先呢,
要使用 Forms 驗證就必須開啟 Forms 驗證,開啟的方式有很多,
可以通過 IIS 來開啟,
可以通過 web.config 配置來開啟,
也可以通過 ASP.NET 網站管理工具來開啟,
開啟 Forms 驗證模式以後呢,就會在 web.config 中產生以下配置,
明確指明了驗證模式為 Forms ,
說了這麼久,何為 Forms 驗證模式呢?
我想大家都有過登入這樣的網站的經曆,在登入時,
總會有一個 CheckBox 來讓網站記住你的功效,也就是您只要登入一次,
以後就可以不要登入了,其實這就是 Forms 機制了,其中到底是怎麼一回事呢,
這個網站怎麼就知道您登入成功了,它怎麼就能夠識別你呢?
其實這是通過 Cookie 來實現的,當您勾選 ”記住我“ 以後且登入成功時,
其便會自動在您的機器上建立一個 Cookie ,這個 Cookie 儲存了您的驗證資訊,
也是您只要登入一次,以後就不用登入的緣故了,
現在就來見識一下這個 Cookie 到底是怎麼一回事,
先看個 Demo__8.aspx
這個 Demo__8.aspx 中幾乎沒有任何內容,僅是作為測試之用的,
Code-Behind
我一開始就運行 Demo__8.aspx,此時由於使用者沒有經過驗證,
所以會跳轉到 web.config 中定義的 loginUrl 頁面上,
然後我以 XiaoZhen 這個使用者名稱登入,並且勾選”記住我“
很明顯,登入成功了,
此時,我再在
C:\Users\XiaoZhen\AppData\Roaming\Microsoft\Windows\Cookies
(我的系統是 Win7 , XP 的話路徑會不一樣,
不過您可以使用搜尋 Cookie 這個檔案夾找到)
這個路徑下邊可以發現建立了一個 Cookie
看到了吧,根據建立的時間可以判斷這個 Cookie 就是剛剛我們登入時建立的,
開啟來看的話
看不懂是什麼鳥東西(因為是加密過的了)
既然建立了 Cookie ,那麼我再次瀏覽這個網站是不是還要進行登陸呢?
可以測試一下
測試的結果是,我直接運行 Demo__8.aspx ,
可以直接進入 Demo__8.aspx 了,
而不是像一開始的那樣要跳轉到 Login.aspx 上進行登陸了。
這個 Demo 呢純粹是測試所用,並沒有什麼太大作用的,
呵呵。
2010—2—06