ASP.NET 2.0 程序的基礎(chǔ)知識
成員關(guān)系的概念在人類社會中是一個(gè)層次比較低的概念,源于希望屬于某個(gè)群組的意識。我們希望能覺得自己是某個(gè)團(tuán)隊(duì)的一部分,讓別人知道我們是誰,因此Web搭上這個(gè)流行趨勢,采用這個(gè)概念只是時(shí)間早晚的問題。如果坐下來想一想曾經(jīng)登錄過多少個(gè)站點(diǎn)并在這些站點(diǎn)上保存了簡單的用戶信息,可能會發(fā)現(xiàn)自己所屬的群組比一開始想象的要多得多。從出售書籍和小器具的站點(diǎn)到討論擁有一輛Ford Puma的好處的社區(qū),或者宣傳一個(gè)名為Look Around You的BBC TV喜劇節(jié)目的站點(diǎn),作者發(fā)現(xiàn)自己是會員的站點(diǎn)多得無法一一列舉。接下來就會碰到一個(gè)熟悉的困難“登錄這個(gè)站點(diǎn)要使用哪個(gè)用戶名和口令?”
在開始開發(fā)涉及到成員關(guān)系的應(yīng)用程序時(shí),必須首先理解幾個(gè)關(guān)鍵的概念,這些概念是身份、驗(yàn)證和授權(quán)。
1、身份——我是誰
在考慮身份時(shí),我們可以用幾種獨(dú)一的特性來描述自己。例如,我是一個(gè)頭發(fā)金黃的女人,喜歡看科幻電影和組裝PC機(jī),但這些信息對于對我的羽毛球技術(shù)感興趣的人來說并不是必需的。保存在站點(diǎn)中的身份信息很可能只與一個(gè)人的某些方面相關(guān)。例如,一個(gè)購物站點(diǎn)會保存用戶的姓名、電話號碼、電子郵件地址和家庭地址,這些信息都與商品的銷售有關(guān)。它們可能不會關(guān)心您的個(gè)人興趣(除非它們和Amazon的規(guī)模一樣大),所以它們并不需要保存關(guān)于用戶的這類信息,但是這并不妨礙它們擁有這些方面的身份信息。
因此身份,也就是我是誰的概念,是一組范圍很廣的實(shí)際情況的集合。您可能曾經(jīng)在簡歷里寫下了很多實(shí)際情況,但這些情況同樣只與潛在的雇主相關(guān)。在簡歷中保存和刪除哪些情況由自己決定。在保存一個(gè)站點(diǎn)的成員的信息時(shí),情況也是一樣的,必須在開發(fā)階段就確定要保存成員的哪些實(shí)際情況。
2、身份驗(yàn)證——這就是我
在試圖登錄一個(gè)網(wǎng)站的時(shí)候,用戶要輸入某些證書。例如,郵件地址及其口令的組合。網(wǎng)站接下來必須判斷用戶是否就是自己聲明的那個(gè)人,因此用戶輸入的郵件地址和口令的組合必須與保存在服務(wù)器文件中特定的郵件地址和口令組合相匹配。
身份驗(yàn)證的過程就是證明自己是自己所聲明的那個(gè)人的過程。很多站點(diǎn),不論它們是零售商品還是提供社區(qū)服務(wù),都使用郵件地址和口令的組合作為身份驗(yàn)證方法,這是一種經(jīng)過反復(fù)考驗(yàn)的方法。雖然這種方法不是絕對安全,但是只要選擇一個(gè)足夠可靠的口令并嚴(yán)格保密,同時(shí)站點(diǎn)的代碼經(jīng)過嚴(yán)格的測試,那么用戶的配置文件將只能由用戶本人使用。
3、授權(quán)——這是我能做的
在向網(wǎng)站輸入用戶名和口令之后,Web服務(wù)器將不僅會驗(yàn)證口令和用戶名是否匹配,還將查看站點(diǎn)管理員給用戶授予了什么權(quán)限。身份驗(yàn)證之后的下一個(gè)步驟是授權(quán),這個(gè)步驟將檢索您所擁有的用戶賬戶類型的更多信息。
例如,以一個(gè)銀行網(wǎng)站為例。在用戶的登錄信息通過驗(yàn)證之后,服務(wù)器將查看用戶在該站點(diǎn)上的.權(quán)限。與大多數(shù)用戶一樣,您可以查詢賬戶、在賬戶之間轉(zhuǎn)賬或者支付賬單。然而,如果銀行受到某個(gè)安全方面的恐嚇(類似于Internet上到處流傳的網(wǎng)絡(luò)釣魚(phishing)電子郵件),您可能會發(fā)現(xiàn)自己突然無法通過這個(gè)在線應(yīng)用程序添加任何第三方代理訂單,直到安全危機(jī)解除為止。功能的關(guān)閉很可能是由管理員為一些或所有用戶設(shè)置一個(gè)特殊的標(biāo)記而進(jìn)行控制的,在頁面上告訴用戶他們不再有權(quán)限修改他們賬戶的詳細(xì)信息。
4、登錄站點(diǎn)
登錄站點(diǎn)的過程,從用戶的角度看,就是輸入一組證書,然后根據(jù)自己的配置文件看到不同用戶界面的過程。通常,用戶所使用的證書是用戶名加口令的組合;然而,對于安全性更高的站點(diǎn),例如銀行站點(diǎn),可以使用其他的方式登錄,包括PIN和安全認(rèn)證。如果不考慮向服務(wù)器傳送身份驗(yàn)證證書的方法,那么身份驗(yàn)證的基本原則是一樣的。一旦驗(yàn)證完成之后,通過身份驗(yàn)證機(jī)制查詢用戶具有什么樣的權(quán)限就比較簡單了。
【ASP.NET 2.0 程序的基礎(chǔ)知識】相關(guān)文章:
1.Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程