Forms身份驗證基本原理

2021-04-02 09:04:33 字數 1660 閱讀 2849

我們來看下forms身份驗證基本原理:

一 身份驗證

要採用forms身份驗證,先要在應用程式根目錄中的web.config中做相應的設

置:其中表示本應用程式採用forms驗證方

式。標籤中的name表示指定要用於身份驗證的cookie。預設是.aspxauth,其實你可以用任何名字,這也就是你在本地硬碟上看到的cookie裡面的前面的幾個字.

forms的驗證過程如下:1,生成身份驗證票,2,加密身份驗證票.3,寫回客戶端,4,瀏覽器重新定向.其實這一系列的動作如果我們不用roles的話都是通過formsauthentication.redirectfromloginpage方法來完成了這一系列的工作任務.但是既然我們要使用roles授權,我們就不能夠使用這個方法,而要分開來,一步步完成.

首先是建立身份驗證票,首先我們看看formsauthenticationticket類的乙個建構函式:

public formsauthenticationticket(

int version, //設為1

string name, //使用者標示

datetime issuedate, //cookie 的發出時間, 設定為 datetime.now

datetime expiration, //過期時間

bool ispersistent, //是否永續性(根據需要設定,若是設定為永續性,在發出

cookie時,cookie的expires設定一定要設定)

string userdata, //這裡用上面準備好的用逗號分割的role字串

string cookiepath // 設為」/」,這要同發出cookie的路徑一致,因為重新整理cookie

要用這個路徑

);最後個引數可以省略

formsauthenticationticket ticket = new formsauthenticationticket

(1,」kent」,datetime.now, datetime.now.addminutes(30), false,userroles)

然後加密:

string hashticket = formsauthentication.encrypt(ticket);

//設定驗證票cookie,第乙個引數為cookie的名字,第二個引數為cookie的值也就是加密後的票

//設定cookie的有效期是乙個禮拜

cookie.expires = datetime.now.adddays(7);

//把cookie加進response物件發生到客戶端

response.cookies.add(cookie);

//得到請求的url

string requesturl = formsauthentication.getredirecturl(formsauthentication.formscookiename,false);

//不要使用formsauthentication.redirectfromloginpage方法,因為這個方法會重寫cookie

//重新定向到請求的url

response.redirect(requesturl);

Forms身份驗證的基本原理

一 身份驗證 要採用forms身份驗證,先要在應用程式根目錄中的web.config中做相應的設定 其中表示本應用程式採用forms驗證方式。1.標籤中的name表示指定要用於身份驗證的 http cookie。預設情況下,name 的值是 aspxauth。採用此種方式驗證使用者後,以此使用者的資...

Forms身份驗證的基本原理

doctype html public wcdtd xhtml stricten httpwwwworgtrxhtmldtdxhtml strictdtd 一 身份驗證 要採用forms身份驗證,先要在應用程式根目錄中的web.config中做相應的設定 其中表示本應用程式採用forms驗證方式。1...

Forms 身份驗證

配置應用程式使用 forms 身份驗證 如果應用程式的根目錄中有 web.config 檔案,請開啟該檔案。複製 在system.web元素中,建立乙個authentication元素,並將它的mode屬性設定為 forms,如下面的示例所示 複製 在authentication元素中,建立乙個fo...