一般登入的時候,會有以下具體的流程:
1. 在瀏覽器中有個登入窗體,要輸入使用者名稱和密碼等憑證,通過提交給伺服器的
asp.net
**來審核,檢查是否正確。
2. 如果憑證正確,那麼就會再伺服器端建立乙個
formsauthenticationticket
例項,其中含有資訊:
cookie
的路徑。注意,窗體的路徑設定為
url
的大小寫不一致而採取的一種保護措施。這在重新整理
expiration
:獲取/
時間。cookie
,則返回
cookie
將限制在瀏覽器生命週期範圍內。
cookie
的日期name
:獲取與身份驗證
userdata
:獲取儲存在
version
:返回位元組版本號供將來使用。
3. 這個
formsauthenticationticket
例項被加密成乙個字串,寫入到
web.config
中form
節點name
屬性指定的
cookie
中,然後傳送到客戶端。
4. 然後將使用者重定向到最初請求的
url中。
forms
驗證中的api
組成forms
驗證的api
以及相關的類:
formsauthenticationmodule:
對每個請求進行驗證的
模組formsauthentication:
包含在forms
驗證中我們常用的方法和屬性
(很重要的
)formsidentity
:
forms
驗證標識。
formsauthenticationticket
:身份驗證的票據,對使用者的資訊進行加密後的產物,我們一般把它加密成字串寫到
cookie
中。上面的類在system.web.security
下。
formsauthenticationmodule
它是乙個實現了
介面的類。它可以用來處理每個請求的
事件。如果傳送了的請求中已經包含了
cookie
資訊,那麼這個模組就對
cookie
資訊進行解密和解析,然後構造乙個
genericprincipal
的類例項填充
context.user,
並且也建立乙個
formsidentity
的例項。
注意:當我們在
web.config
中配置了
forms
驗證後,那麼我們在
事件寫的**要是和
forms
相關的api
。formsauthentication
類這個類很重要。
它有很多的其他方法和屬性:
formsauthenticate
中涉及到客戶端儲存
cookie
的兩個屬性就是:
formscookiename:
獲取或者設設定
cookie
的名稱formscookiepath:
獲取或者設定
cookie
的url
路徑其中
formscookiepath
屬性有一點要注意
:大多數的瀏覽器會在判斷
cookie
是否要和請求一起傳送時,用到
cookie
路徑。(
我們一般在配置檔案配置
path="/"),
如果我們配置的
path
不是"/"
,那麼這個
cookie
就不會和請求傳送到伺服器端。
formsauthenticate
中和cookie
操作相關的方法有:
decrypt:
提取身份驗證
cookie
的加密資訊,建立
formsauthenticationticket,
也就是解密。
encrypt:
加密。從
formsauthenticationticket
中獲取資訊,並且加密。以備我們之後把加密的資訊寫入
cookie
。getauthcookie:
建立身份驗證
cookie
,但是並不把它立即新增到
響應中。
setauthcookie:
建立身份驗證
cookie
,並且把它新增到
response.cookie
中。renewticketifold
:重新整理身份驗證
cookie
的生命週期。
getredirecturl:
把使用者重定向到他們最初請求的頁面。
signout:
使得當前的身份驗證
cookie
過期。我們常用的登出功能。
附:**(從身份驗證票中取出使用者登陸id)
/// /// forms驗證中,從使用者的身份驗證票中取出使用者id
///
/// 登入使用者的id
public static string getpidfromforms()
return pid;
}
Forms 身份驗證
配置應用程式使用 forms 身份驗證 如果應用程式的根目錄中有 web.config 檔案,請開啟該檔案。複製 在system.web元素中,建立乙個authentication元素,並將它的mode屬性設定為 forms,如下面的示例所示 複製 在authentication元素中,建立乙個fo...
Forms身份驗證
在進行forms身份驗證時,如果採用如下的方法配置web.config的話,則會出現所有的頁面都要進行驗證,這是使用者所不能容忍的,具體 如下 這裡我還要說明一點,很多初學者都會把上面的 寫為 結果會出現不能識別forms節點。如果要實現某個目錄下的forms驗證哪個怎麼辦呢?其實 很簡單,在新增完...
window 驗證方式之一,Forms驗證
有時我們做的一些系統,需要做身份驗證,我們不肯每個頁面都去用session 做判斷,這時候在配置檔案裡設定登入 的驗證方式,forms驗證就好了,forms驗證,當有使用者登入系統時,系統想伺服器發出請求,伺服器請求沒有包含有效的驗證cookies,web服務就會把頁面指向特定頁面 配置檔案配置示例...