轉(zhuǎn)帖|其它|編輯:郝浩|2010-09-29 11:43:11.000|閱讀 601 次
概述:AuthenticationService對(duì)象僅提供了兩個(gè)公用方法:login()和logout(),分別用來實(shí)現(xiàn)用戶登錄和注銷,還暴露了幾個(gè)常用的屬性。下面讓我們逐一介紹。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
AuthenticationService對(duì)象僅提供了兩個(gè)公用方法:login()和logout(),分別用來實(shí)現(xiàn)用戶登錄和注銷,還暴露了幾個(gè)常用的屬性。下面讓我們逐一介紹。
(一) 方法
1、login()方法
這個(gè)方法負(fù)責(zé)將用戶名字和密碼傳遞到服務(wù)器端進(jìn)行驗(yàn)證,并返回是否通過驗(yàn)證的信息;必要的話,還可以設(shè)置相應(yīng)的客戶端Cookie等信息。這個(gè)方法的完整形式如下所示:
Sys.Services.AuthenticationService.login(userName, password, isPersistent, customInfo, redirectUrl,
inCompletedCallback, failedCallback, userContext);
下面詳細(xì)列出了上面各個(gè)參數(shù)的含義。
參數(shù):作用
userName:將被認(rèn)證的用戶名字。
password:將被認(rèn)證的用戶密碼。
isPersistent:如果取值為true,則表示要永久保存跨瀏覽器會(huì)話的認(rèn)證信息;默認(rèn)值為null。
customInfo: 保留字段(暫不使用),必須賦值為null。
redirectUrl: 驗(yàn)證成功之后要重定向到的URL;若取值null,則不會(huì)發(fā)生重定向。默認(rèn)值為null。
loginCompletedCallback: 調(diào)用認(rèn)證服務(wù)完成之后的回調(diào)函數(shù)。注意,不管用戶是否通過了服務(wù)器端認(rèn)證,只要認(rèn)證過程中沒有出現(xiàn)諸如超時(shí)、異常等問題,都會(huì)調(diào)用該回調(diào)函數(shù)。然后,在該回調(diào)函數(shù)內(nèi)可以得到用戶是否通過了此次驗(yàn)證的信息。默認(rèn)為null。
failedCallback: 調(diào)用認(rèn)證服務(wù)失敗之后的回調(diào)函數(shù)。導(dǎo)致失敗的原因可能是網(wǎng)絡(luò)連接超時(shí)、或是認(rèn)證服務(wù)內(nèi)部拋出異常等。若是由于用戶提供的用戶名和密碼不正確而不能通過驗(yàn)證,將不會(huì)導(dǎo)致調(diào)用認(rèn)證服務(wù)失敗,該回調(diào)函數(shù)將不會(huì)被調(diào)用。默認(rèn)為null。
userContext: 隨本次異步用戶認(rèn)證調(diào)用發(fā)送至服務(wù)器端的用戶上下文對(duì)象。
其中,loginCompletedCallback和failedCallback是兩個(gè)重要的回調(diào)函數(shù)地址參數(shù)。
?、?、loginCompletedCallback參數(shù)所指定的回調(diào)函數(shù)的完整形式:
function onLoginCompleted(validCredentials, userContext, methodName)
? validCredentials:一個(gè)布爾值,表示用戶是否成功通過了驗(yàn)證;
? userContext:在調(diào)用login()方法時(shí)傳遞的用戶上下文對(duì)象;
? methodName:調(diào)用方法的方法名。
?、凇ailedCallback參數(shù)所指定的回調(diào)函數(shù)的完整形式如下:
function onAuthenticationFailed(error, userContext, methodName)
? error:導(dǎo)致認(rèn)證服務(wù)失敗的異常對(duì)象;
? userContext:在調(diào)用login()方法時(shí)傳遞的用戶上下文對(duì)象;
? methodName:調(diào)用方法的方法名。
2、logout()方法
logout()方法用來注銷當(dāng)前已經(jīng)登錄的用戶。這個(gè)方法的完整形式如下所示:
Sys.Services.AuthenticationService.logout( redirectUrl, logoutCompletedCallback, failedCallback, userContext );
其中各個(gè)參數(shù)的含義如下表2所示。
logout()方法各參數(shù)含義
參數(shù):作用
redirectUrl: 注銷成功之后重定向到的URL,若該參數(shù)值為null,則將自動(dòng)重定向至當(dāng)前頁面。默認(rèn)值為null。
logoutCompletedCallback: 注銷用戶完成之后的回調(diào)函數(shù)。
failedCallback :注銷用戶失敗之后的回調(diào)函數(shù)。導(dǎo)致失敗的原因可能是網(wǎng)絡(luò)連接超時(shí)、或是認(rèn)證服務(wù)內(nèi)部拋出異常等。
userContext: 隨本次異步用戶認(rèn)證調(diào)用發(fā)送至服務(wù)器端的用戶上下文對(duì)象。
注意,在此所列出的四個(gè)參數(shù)均是可選的。對(duì)于logoutCompletedCallback和failedCallback參數(shù),如果為AuthenticationService對(duì)象設(shè)置了默認(rèn)值的話,也可以省略。
注銷成功之后的回調(diào)函數(shù),即logoutCompletedCallback參數(shù)所指定的函數(shù)的完整的形式如下所示:
function onLogoutCompleted(result, userContext, methodName)
說明:
1. result:目前并沒有使用到該參數(shù),始終為null。
2. userContext:在調(diào)用logout()方法時(shí)傳遞的用戶上下文對(duì)象。
3. methodName:調(diào)用方法的方法名。
注銷用戶失敗之后的回調(diào)函數(shù),即failedCallback參數(shù)所指定的函數(shù)形式:
function onAuthenticationFailed(error, userContext, methodName)
說明:
1. error:導(dǎo)致認(rèn)證服務(wù)失敗的異常對(duì)象。
2. userContext:在調(diào)用login()方法時(shí)傳遞的用戶上下文對(duì)象。
3. methodName:調(diào)用方法的方法名。
(二) 公共屬性
AuthenticationService對(duì)象還提供了如表3所示幾個(gè)經(jīng)常用到的屬性。
AuthenticationService對(duì)象的常用屬性
屬性:作用
defaultLoginCompletedCallback: 獲取或設(shè)定默認(rèn)的調(diào)用認(rèn)證服務(wù)完成之后的回調(diào)函數(shù)。
defaultLogoutCompletedCallback: 獲取或設(shè)定默認(rèn)的注銷用戶完成之后的回調(diào)函數(shù)。
defaultFailedCallback: 獲取或設(shè)定默認(rèn)的登錄/注銷失敗之后的回調(diào)函數(shù)。
isLoggedIn: 獲取一個(gè)布爾值的屬性,表示當(dāng)前用戶是否已經(jīng)登錄。
timeout: 獲取或設(shè)定認(rèn)證請(qǐng)求的超時(shí)時(shí)間,單位為毫秒。
(三) 簡單舉例
1、設(shè)置AuthenticationService對(duì)象的timeout屬性:
Sys.Services.AuthenticationService.set_timeout(3000);
2、若是預(yù)先設(shè)定了defaultLoginCompletedCallback、defaultLogoutCompletedCallback和 defaultFailedCallback屬性,那么在調(diào)用AuthenticationService對(duì)象的login()和logout()方法時(shí),則可省去專門指定各回調(diào)函數(shù)的操作。例如,如下代碼就設(shè)定了AuthenticationService的這3個(gè)屬性,并定義了相應(yīng)的默認(rèn)回調(diào)函數(shù):
Sys.Services.AuthenticationService.set_defaultLoginCompletedCallback(onLoginCompleted);
Sys.Services.AuthenticationService.set_defaultLogoutCompletedCallback(onLogoutCompleted);
Sys.Services.AuthenticationService.set_defaultFailedCallback(onAuthenticationFailed);
function onLoginCompleted(validCredentials, userContext, methodName) {
//…………
}
function onLogoutCompleted(result, userContext, methodName) {
//…………
}
function onAuthenticationFailed(error, userContext, methodName) {
//…………
}
隨后,我們只需使用如下代碼進(jìn)行用戶登錄/注銷就可以了。其中userName表示用戶名,password表示密碼:
Sys.Services.AuthenticationService.login(userName, password, true);
//…………
Sys.Services.AuthenticationService.logout();
顯然,這種編程思路清晰更有助于實(shí)現(xiàn)模塊化,更值得推薦。
3、下面這個(gè)函數(shù)調(diào)用logout方法簡單地清除表單中的認(rèn)證cookie信息。
function OnClickLogout()
{
Sys.Services.AuthenticationService.logout(null, null, null, null);
}
4、下面這個(gè)函數(shù)調(diào)用認(rèn)證服務(wù)的login方法校驗(yàn)用戶輸入的證書信息。如果認(rèn)證成功,認(rèn)證服務(wù)將產(chǎn)生一個(gè)表單認(rèn)證相關(guān)cookie。
function OnClickLogin(){
//設(shè)置默認(rèn)的回調(diào)函數(shù)
SetDefaultLoginCompletedCallBack();
SetDefaultLogoutCompletedCallBack();
SetDefaultFailedCallBack();
//調(diào)用認(rèn)證服務(wù)認(rèn)證用戶輸入的證書信息
Sys.Services.AuthenticationService.login(username.value,
password.value, false,null,null,null,null,"User Context");
}
總結(jié)
在本篇中,我們僅羅列了ASP.NET AJAX框架的客戶端認(rèn)證服務(wù)中一些重要的公共成員及含義解釋。并且,我們已經(jīng)認(rèn)識(shí)到進(jìn)行以ASP.NET AJAX框架客戶端中心型Web開發(fā)應(yīng)當(dāng)主動(dòng)使用這一功能。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:博客轉(zhuǎn)載