Membership學習(一)

Membership學習(一) Membership介紹
     Asp.net的membership提供了一種存儲,驗證和管理用戶信息以及權限的統一的路徑。membership所對應的驗證方式是asp.net的Forms身份驗證(注:asp.net的身份驗證方式 有好幾種包括windows身份驗證 Forms身份驗證 Passport身份認證當然還有就是沒有驗證)。在vs2005中 還給membership提供了一系列的控件(login控件),能方便的在asp.net實現membership。
     具體來說membership能實現:
     1.   創建用戶
     2.   可以保存membership信息在sql server,Active Directory以及其他的一些數據保存方法
     3.   鑑別誰在訪問你的網站。如果使用login控件,幾乎可以在不寫代碼的情況下完成。
     4.   管理密碼。包括 創建 修改 重置
     5.   創建一個唯一的值來標誌每一個登陸用戶,可以實現對用戶的個性化以及角色管理。
     6.   提供一個用戶自定義的membership provider,從而實現一些自己網站特有的數據的保存和管理。
     讓membership能工作要做的一些工作:
     1.   在web.config中填寫一些membership的設置,在asp.net默認情況下membership是被允許使用的 而默認的數據保存是使用ms的sql server.你可以做些設置提供其他的數據保存方法 包括自定義的方法。這將在後面的文章中具體介紹
     2.   設置你的網站使用Forms驗證方式,
     3.   爲membership定義用戶帳號。可以使用vs2005提供的web administrator tool進行設置,也可以自己製作create user頁面進行,而自定義頁面 只要調用membership.createuser就可以方便的創建用戶。


     Membership的管理和配置:
在web.config中配置管理membership最簡單的方法就是使用Web Site Administration Tool(在vs2005的websits菜單裏)。你可以指定membership的提供者sql server還是其他,密碼的管理 包括是否要加密保存 以及是否要給用戶提供根據事先設置的問題 恢復密碼的機制。當然是用web site administration tool可以直接創建和管理用戶及角色。

     Membership的方便之處在於,當一個用戶通過認證之後,他的信息的保存都是系統自動完成的 這樣我以前最頭痛的如何安全完整的在各個頁面中傳遞登陸用戶信息這點就迎刃而解了。
     如果使用vs2005自帶的login控件 要清楚一件事 就是login控件的功能實現都是調用了membership的類函數,我們完全可以自己寫出所有的控件。
     之後會具體介紹membership的使用。我的介紹也是對msdn的一些翻譯和整理。

Membership學習(二)membership入門
--不寫一行代碼在asp.net中實現用戶驗證管理系統
這篇文章我們將實現一個簡單的網站,在網站中實現用戶的身份驗證,創建用戶,修改密碼 還有限制匿名用戶訪問某些目錄等功能,最神奇的是使用asp.net2.0實現我們幾乎不用手工寫一行代碼。--不知道以後程序員要做些什麼事了:(!!

我們手工從頭創建一個web應用,學習其中的一些技術,這個應用將要完成的任務有
1.   創建一個包含membership服務的web應用,創建一個用戶
2.   使用login控件,得到用戶的憑證以及顯示登錄用戶的信息
3.   在網站裏創建一個目錄 裏面的頁面只有登錄用戶才能訪問
4.   允許網站創建新用戶
5.   用戶可以修改和重置
我的開發環境windows2003,iis6.0,vs2005 team suit英文版,sql server2005 express

工作開始
一、在本地IIS上創建一個網站
1.   打開visual studio,file菜單,選擇 New web site
2.   選擇asp.net web site,在location下來框裏選擇http,然後點擊browser按鈕,在彈出框裏選擇local IIS,打開Local Web Server,選擇默認網站(default web site),點擊對話框右上的Create New Web Application圖標,命名爲membership,點擊open按鈕關閉對話框。
3.   選擇工作語言(c#等),以後在創建其他網頁時 可以選擇不同的語言 :)
4.   點擊OK
網站創建後 會默認生成一個default.aspx頁面 我們留着他就可以了,也可以刪除他 重新創建一個頁面
二、配置membership
1.        創建一個新的文件夾在網站裏命名爲MemberPages
2.        創建一個membeship用戶
a.        在菜單website裏選擇Asp.net configuration,在打開的網頁裏選擇Security tab頁,點擊Use the security Setup Wizard to configure security step by step鏈接。
b.        在嚮導第2步裏選擇 From the Internet 選項 這裏是讓你的網站使用Form的身份認證,原因在membership介紹 文章裏講過。
c.        點擊Next 這步還是默認使用sql server2005 express並會在App_Data目錄裏生成數據庫文件。
d.        點擊Next 這裏不要選擇Enable roles for this web site
e.        點擊Next 這時是創建一個用戶 輸入User Name ,Password,,E-mail, Security Question and Security Answer ,創建用戶。這裏順便說一下 membership默認的密碼設置是比較嚴格的需要字母數字加特殊字符,其實我們可以在web.config中給membership的密碼指定一個正則表達式 來修改密碼的規則。具體可以在msdn中查找
3.        創建一個規則 限制訪問一個指定的目錄
a.        接着剛纔的嚮導繼續next,進入創建訪問規則頁面,在顯示網站目錄的框裏,展開目錄,選擇剛纔我們創建的MemberPages的文件夾。
b.        在Rule applies to下選擇Anonymous users,在Permission下選擇deny,這樣就限制了匿名用戶訪問目錄的權限。
c.        點擊add this rule權限創建,接着是Finish.
三、爲應用配置一個E-mail
這個操作的目的是爲了恢復密碼時發送密碼給用戶
還是在asp.net configuration的網頁裏 選擇Application tab頁面,在Smtp Settings下 點擊Configure SMTP e-mail settings.鏈接,這個配置一個smtp服務器以及一個email賬號。
配置完email就可以關閉 這個配置頁面了。
四、用戶登錄
打開default.aspx頁面,使用design視圖,在上面寫個welcome什麼的,然後拖上一個login控件組裏的loginstatus控件。接着建一個login.aspx頁面,在這個例子裏我們的頁面的名字一定要取成login.aspx,在默認情況下 當匿名用戶訪問受限制的頁面時,會自動轉到login.aspx,這個默認設置可以通過配置更改的,這裏我們就使用默認。
在login.aspx頁面上拖放一個login控件組裏的login控件,再放置一個ValidationSummary控件,用來現實填寫的出錯信息,將ValidationSummary的ValidationGroup屬性設置成login控件的id名稱。

顯示登錄用戶信息
選擇default.aspx頁面拖上一個loginview控件,使用loginview智能標籤(smart tag),選擇模板AnonymousTemplate,寫上”你沒有登錄,點擊login鏈接登錄”,然後再選擇模板LoggedInTemplate,寫上”歡迎”字符,再在後面拖上一個loginname控件。
這之後,你可以先測試一下你的頁面 使用我們上面建立的用戶進行登錄,看看不同的顯示。
五、建立只能用戶訪問的頁面
在我們上面建立的MemberPages文件夾裏建立一個Members.aspx頁面,寫上welcome member,然後 我們在default.aspx頁面上拖一個HyperLInk控件,在NavigateUrl屬性裏寫上~/memberPages/Members.aspx
這裏也可以進行一次測試
六、創建新用戶
在根目錄裏建立一個register.aspx,在頁面上拖放一個CreateUserWizard控件並把它的ContinueDestinationPageUrl屬性設置成~/default.aspx,這個屬性是對你點擊Finish之後跳轉的頁面。接着在頁面裏添加一個Hyperlink控件,NavigateUrl設置成~/default.aspx.最後在default.aspx頁面裏添加一個指向register.aspx頁面的鏈接,爲了好看一點 我們把這個鏈接放到loginview控件的AnonymousTemplate模板裏。
測試一下
七、修改密碼
在MemberPages文件夾裏創建一個ChangePassword.aspx文件,拖上一個ChangePassword控件也把它的ContinueDestinationPageUrl屬性設置成~/default.aspx。接着在default.aspx頁面裏添加一個指向changepassword.aspx頁面的鏈接, 我們把這個鏈接放到loginview控件的LoggedInTemplate模板裏。
測試
八、重置密碼
在根目錄裏建立一個recoverypassword.aspx文件,拖一個passwordrecovery控件,並放一個鏈接指向default.aspx.之後在default.aspx的loginview控件的AnonymousTemplate模板裏添加一個鏈接指向recoverypassword控件。
測試

這樣整個例子完成 大家也可以看到 我們沒有寫一行代碼。:)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章