我們來看下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...