自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET登陸控件的簡單用法

開發(fā) 后端
ASP.NET登陸控件詳解:通過Login控件、Loginname和LoginStatus控件等6大控件的簡單用法及新增加的Membership API的簡單使用。

ASP.NET登陸控件比較多,封裝了大部分WEB應(yīng)用中要實(shí)現(xiàn)系統(tǒng)登陸的系列功能,涉及到很多方面,本文將簡單介紹一下它們的主要功能。

ASP.NET 2.0中,新增了許多新的功能和控件。其中,新增的登陸控件可謂使得WEB應(yīng)用的設(shè)計(jì)更加得心應(yīng)手。什么是登陸控件呢?就是我們平常在WEB應(yīng)用中經(jīng)常要用到的用戶注冊,登陸,忘記密碼,登陸后根據(jù)權(quán)限的不同而顯示不同的頁面等功能,現(xiàn)在在ASP.NET 2.0中都已經(jīng)可以由提供的控件來實(shí)現(xiàn)了。ASP.NET登陸控件比較多,封裝了大部分WEB應(yīng)用中要實(shí)現(xiàn)系統(tǒng)登陸的系列功能,涉及到很多方面,本文將簡單介紹一下它們的主要功能。

首先,ASP.NET2.0中,為了更方便創(chuàng)建和管理用戶,以及對 Web 應(yīng)用程序中的頁進(jìn)行密碼保護(hù),引進(jìn)了新的框架membership。新的框架包含用于處理身份驗(yàn)證和授權(quán)的新增功能,能夠同時(shí)滿足 Web 站點(diǎn)管理員和開發(fā)人員的需要。Web 站點(diǎn)管理員可以利用新的 Web 站點(diǎn)管理工具來創(chuàng)建新的用戶和角色,以及控制對 Web 應(yīng)用程序中頁面的訪問。Web 站點(diǎn)管理工具是一組預(yù)先編寫的 ASP.NET 2.0頁,不具備編程技巧的用戶可以使用它們來配置 Web 應(yīng)用程序。利用membership API,編程人員可以很方便地使用拖拉控件的方法,再加以少量的代碼,就可以完全實(shí)現(xiàn)對用戶,角色權(quán)限等的管理,還可以自定義做擴(kuò)充。

其中,membership框架中包含了兩個(gè)默認(rèn)的用戶驗(yàn)證程序:默認(rèn)的 AccessMembershipProvider以及 SqlMembershipProvider。如果希望在 Microsoft SQL Server 數(shù)據(jù)庫中存儲(chǔ)成員身份信息,則可以將應(yīng)用程序配置為使用 SqlMembershipProvider,如果要使用access數(shù)據(jù)庫,則使用AccessMembershipProvider。還可以創(chuàng)建自定義成員身份提供程序。例如,如果需要在 XML 文件、或 Oracle 數(shù)據(jù)庫中存儲(chǔ)成員身份信息,希望創(chuàng)建自己的成員身份提供程序,則需要實(shí)現(xiàn)抽象類MembershipProvider 的所有方法和屬性。本文中,將以access數(shù)據(jù)庫為例子做說明,所以使用Accessmembershipprovider。

我們可以使用ASP.NET2.0自帶的WEB站點(diǎn)安全配置工具,就可以無需編程,在系統(tǒng)向?qū)У膸ьI(lǐng)下,自動(dòng)建立一個(gè)存儲(chǔ)用戶角色身份的數(shù)據(jù)庫了。比如,我們現(xiàn)在需要建立一個(gè)access的數(shù)據(jù)庫,里面存儲(chǔ)用戶名,密碼,密碼提示問題,用戶EMAIL等資料,則可以通過web站點(diǎn)安全配置工具來實(shí)現(xiàn)。步驟如下:

1)先使用visual studio express 2005建立一個(gè)WEB站點(diǎn),命名為Dorknozzle,使用VB.NET語言,之后,我們點(diǎn)選Visual studio express中的WebSite菜單中的ASP.NET 2.0 Configuration,這時(shí)會(huì)彈出一個(gè)新的頁面窗口,其中選擇Security選項(xiàng),如下圖:

Security選項(xiàng)

2) 從上圖可以看到,安全設(shè)置選項(xiàng)被分為三部分:用戶,角色和規(guī)則。由于我們是***次配置,選擇“To configure security step by step, use the Security Setup Wizard”,在出現(xiàn)的界面點(diǎn)“NEXT”進(jìn)入下一步。

在第二步中,你可以選擇驗(yàn)證的類型,比如你的站點(diǎn)是發(fā)布在internet還是intranet,再點(diǎn)next進(jìn)入下一步,系統(tǒng)會(huì)提示目前是使用AspnetAccessProvider ,繼續(xù)點(diǎn)下一步,系統(tǒng)會(huì)詢問是否創(chuàng)建基于角色的應(yīng)用,如果應(yīng)用中要用到角色,就必須將那個(gè)單選框打勾,本文不選擇該項(xiàng),繼續(xù)下一步。

3) 此時(shí),系統(tǒng)會(huì)詢問我們輸入創(chuàng)建用戶的信息,如下圖,比如輸入用戶名,密碼,EMAIL等信息。在輸入后,點(diǎn)NEXT進(jìn)入下一步。

輸入界面

4)系統(tǒng)會(huì)允許你對某一用戶進(jìn)行有關(guān)規(guī)則的詳細(xì)設(shè)置,比如允許某一用戶行駛或拒絕使用某角色等。本文將忽略不用,繼續(xù)選NEXT進(jìn)下一步,此時(shí),完成了系統(tǒng)的初步配置了。

此時(shí),AccessMembershipProvider會(huì)自動(dòng)在當(dāng)前工程的data目錄下,創(chuàng)建一個(gè)AspNetDB的ACCESS數(shù)據(jù)文件,打開它,會(huì)發(fā)現(xiàn)自動(dòng)生成了相關(guān)的表格,比如有aspnet_users表,存放用戶的基本信息,aspnet_membership表,存放用戶加密的密碼和其他信息。

在進(jìn)行完上面的步驟后,下面我們開始認(rèn)識并使用ASP.NET 2.0 2.0中的登陸控件。這些控件在工具箱的Login選項(xiàng)組中,共有Login, LoginView, PasswordRecovery, LoginStatus, LoginName, CreateUserWizard, ChangePassword 共7個(gè),下面逐一介紹:

#p#

Login控件

拖拉一個(gè)Login控件到窗體中,就發(fā)現(xiàn)和平時(shí)見到的登陸窗口差不多了,在該控件的屬性窗口中,比較重要的是DestinationPageUrl 屬性,該屬性將指定用戶在登陸后跳轉(zhuǎn)的頁面,而FailureText表示登陸失敗后提示的文本,CreateUserText表示創(chuàng)建新用戶的提示文本,PasswordRecoveryText表示提示密碼的文本,PasswordRecoveryUrl表示實(shí)現(xiàn)密碼提示恢復(fù)功能的鏈接,此外可以設(shè)置其很多屬性,比如顯示用戶名,密碼的文本,登陸按鈕PasswordRecoveryUrl的文本等,都十分簡單,大家可以去試一下,初步設(shè)置屬性后的登陸框如下圖:

Login控件

Loginname和LoginStatus控件

一般的登陸模塊,當(dāng)用戶在成功登陸后,會(huì)顯示用戶當(dāng)前登陸的身份,比如“歡迎XXX用戶登陸”的提示,而同時(shí)會(huì)顯示“LOGOUT(退出)”的提示,這時(shí),我們可以通過Loginname和loginstatus控件來實(shí)現(xiàn),在index.aspx頁中,加入

  1. 〈form runat="server" 〉  
  2.    
  3. Welcome 〈asp:LoginName id="lnUser" runat="server"/ 〉,   
  4. your login was successful!〈br / 〉〈br / 〉  
  5.  
  6. 〈asp:LoginStatus id="lsUSer" runat="server"/ 〉  
  7.    
  8. 〈/form 〉 

則當(dāng)用戶登陸后,會(huì)顯示如下:

Loginname和LoginStatus控件

LoginView控件

另一十分有用的控件就是loginview。它會(huì)根據(jù)用戶角色的不同而顯示不同的登陸后的內(nèi)容。比如,做為管理員在登陸后,希望能看到所有部門的人員信息,而只希望某一部門的人員看到只屬于該部門的信息,LoginView控件可以做到這點(diǎn)。本文的例子中,希望系統(tǒng)顯示給匿名訪問者的信息是希望他們注冊用戶,而對于已經(jīng)登陸的用戶,則顯示歡迎他們再次訪問的文字。此時(shí)要用到Loginview控件的AnonymousTemplate模版和LoggedInTemplate模版。

AnonymousTemplate模版用于顯示給匿名用戶時(shí)的提示信息,LoggedInTemplate模版用于顯示給已經(jīng)登陸用戶的提示信息,代碼如下:

  1. 〈 asp:LoginView id="lvDorknozzle" runat="server" 〉   
  2. 〈 LoggedInTemplate 〉   
  3. Welcome   
  4. 〈 asp:LoginName id="lnUser" runat="server"/ 〉   
  5. 〈 /LoggedInTemplate 〉   
  6. 〈 AnonymousTemplate 〉   
  7. Welcome to the Dorknozzle site!〈 br / 〉   
  8. Please click on the New User link   
  9. to register on our site.   
  10. 〈 /AnonymousTemplate 〉   
  11. 〈 /asp:LoginView 〉 

運(yùn)行如下圖:

Loginname和LoginStatus控件

 #p#

CreateUserWizard控件

使用該控件,可以很方便地一步步引導(dǎo)用戶進(jìn)行注冊。拖拉其到設(shè)計(jì)窗體中,如下圖:

CreateUserWizard控件 

當(dāng)然,你可以對其屬性進(jìn)行更多地設(shè)置;

比如,設(shè)置HeaderTemplate(頭模版),StartNavigationTemplate(開始注冊模版),F(xiàn)inishNavigationTemplate(結(jié)束注冊模版)等,具體設(shè)置可以參考在線幫助。而該控件還允許當(dāng)注冊成功后向用戶發(fā)郵件,比如:

  1. 〈 asp:CreateUserWizard id="CreateUserWizard1"   
  2. runat="server"〉   
  3. 〈 MailDefinition   
  4. BodyFileName="NewUserEmail.txt"   
  5. From="welcome@dorknozzle.com"   
  6. Subject="Welcome to the Dorknozzle site!"/〉   
  7. 〈 /asp:CreateUserWizard〉 

而發(fā)郵件則需要在web.config文件中配置,比如:

  1. 〈configuration〉   
  2. 〈system.web〉   
  3. 〈authentication mode="Forms"/〉   
  4. 〈smtpMail serverName="Localhost"/〉   
  5. 〈/system.web〉   
  6. 〈/configuration〉 

PasswordRecovery密碼恢復(fù)控件

該控件可以實(shí)現(xiàn)簡單地密碼提示恢復(fù)功能,并將密碼email給用戶,代碼如下:

  1. 〈asp:PasswordRecovery id="prForgotPass"   
  2. runat="server"  〉   
  3. 〈/asp:PasswordRecovery  〉 

實(shí)現(xiàn)時(shí)如下圖所示:

PasswordRecovery密碼恢復(fù)控件 

用戶輸入用戶名后,則需要輸入密碼恢復(fù)的答案,如下圖:

PasswordRecovery密碼恢復(fù)控件 

并在該控件中設(shè)置將恢復(fù)后的密碼EMAIL給用戶

  1. 〈asp:PasswordRecovery id="prForgotPass"   
  2. runat="server"  〉   
  3. 〈MailDefinition   
  4. BodyFileName="forgotpassword.txt"   
  5. From="helpdesk@dorknozzle.com"   
  6. Subject="Word has it, you forgot   
  7. your password?"/  〉   
  8. 〈/asp:PasswordRecovery  〉 

ChangePassword 更改密碼控件

更改密碼的ASP.NET登陸控件可以很方便地實(shí)現(xiàn)密碼的更改,包括一個(gè) MailDefinition 屬性。如果將值賦給 MailDefinition 屬性,則 ChangePassword 控件在密碼成功更改時(shí)將自動(dòng)向用戶發(fā)送一個(gè)電子郵件。

ChangePassword 更改密碼控件 

直接使用Membership API

有時(shí)候,需要對成員身份進(jìn)行更高級別(比 Web 站點(diǎn)管理工具或 Login 控件提供的控制級別高)的控制。在這些情況下,可以直接使用 Membership API。

Membership API 是通過 Membership 類公開的。Membership 類包含的方法使您能夠完成以下工作:創(chuàng)建新用戶;更改密碼;搜索與特定條件匹配的用戶等等。在幕后,Login 控件使用這些方法與已配置的成員身份提供程序進(jìn)行交互。

下面列出了 Membership 類的一些比較重要的方法:

CreateUser — 使您能夠創(chuàng)建新用戶。

DeleteUser — 使您能夠刪除現(xiàn)有用戶。

FindUsersByEmail — 使您能夠檢索與某個(gè)特定的電子郵件地址匹配的用戶集合。

FindUsersByName — 使您能夠檢索與某個(gè)特定的用戶名匹配的用戶集合。

GeneratePassword — 使您能夠生成隨機(jī)密碼。

GetAllUsers — 使您能夠檢索成員身份提供程序中存儲(chǔ)的所有用戶。

GetNumberOfUsersOnline — 使您能夠返回當(dāng)前正在訪問 Web 應(yīng)用程序的用戶數(shù)。

GetUser — 使您能夠檢索與當(dāng)前用戶相關(guān)聯(lián)的成員身份信息,或者使您能夠檢索與某個(gè)已經(jīng)提供用戶名的用戶相關(guān)聯(lián)的成員身份信息。

GetUsernameByEmail — 使您能夠檢索具有某個(gè)特定電子郵件地址的用戶的用戶名。

UpdateUser — 使您能夠更新特定用戶的信息。

ValidateUser — 使您能夠根據(jù)成員身份提供程序?qū)τ脩暨M(jìn)行身份驗(yàn)證。

***,我們利用該API,實(shí)現(xiàn)稍微復(fù)雜的功能。在index.aspx中,添加一個(gè)label控件,顯示在線的人數(shù),代碼如下:

  1. Number of Users Online:   
  2. 〈asp:Label id="lblNumUsersOnline" runat="server"/〉 

在PAGE-LOAD事件中,增加代碼如下:

  1. Sub Page_Load(s As Object, e As EventArgs)  
  2. Handles MyBase.Load   
  3. lblNumUsersOnline.Text = _   
  4. Membership.GetNumberOfUsersOnline().ToString()   
  5. End Sub 

則可以顯示在線人數(shù)。我們并且再添加一個(gè)gridview,顯示所有用戶的在線狀況,是否允許某種權(quán)限和相關(guān)的信息。

  1. 〈asp:GridView id="gvUsers" runat="server"   
  2. AutoGenerateColumns="False"〉   
  3. 〈Columns〉   
  4. 〈asp:BoundField HeaderText="Username"   
  5. DataField="Username" /〉   
  6. 〈asp:BoundField HeaderText="Is Online?"   
  7. DataField="IsOnline" /〉   
  8. 〈asp:BoundField HeaderText="Is Approved?"   
  9. DataField="IsApproved" /〉   
  10. 〈asp:BoundField HeaderText="Email"   
  11. DataField="Email" /〉   
  12. 〈/Columns〉   
  13. 〈/asp:GridView〉 

并將gridview綁定:

  1. gvUsers.DataSource = Membership.GetAllUsers() ;  
  2. gvUsers.DataBind(); 

***運(yùn)行結(jié)果如下圖:

ChangePassword 更改密碼控件 

總結(jié)

本文以實(shí)際例子,介紹了ASP.NET 登陸控件的簡單用法以及新增加的Membership API的簡單使用,更多的請參考MSDN或正式版時(shí)的有關(guān)介紹。

 

【編輯推薦】

  1. ASP.NET 2.0環(huán)境下的Shell函數(shù)
  2. 在ASP.NET 2.0中向數(shù)據(jù)庫批量插入數(shù)據(jù)
  3. ASP.NET 2.0用Post方式向網(wǎng)頁發(fā)送數(shù)據(jù)
  4. ASP.NET 2.0 2.0部署WEB應(yīng)用程序淺析
  5. ASP.NET 2.0中的HttpWorkerRequest對像
  6. 介紹ASP.NET 2.0 MVC框架
  7. 配置ASP.NET 2.0 AJAX概述
責(zé)任編輯:冰荷 來源: yesky
相關(guān)推薦

2009-08-27 17:20:30

ASP.NET登陸控件membership配

2009-07-27 13:52:36

Panel控件ASP.NET

2009-09-09 09:09:17

ASP.NET MVC

2011-07-12 15:17:02

ASP.net服務(wù)器控件

2009-09-11 09:09:00

ASP.NETAdRotator控件

2009-07-20 13:32:24

ScriptManagASP.NET

2009-08-04 11:29:14

HTML代碼ASP.NET控件

2009-07-24 15:35:00

ASP.NET Gri

2009-08-04 10:43:59

ASP.NET控件開發(fā)

2009-08-19 13:44:00

ASP.NET Lis

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-08-05 15:57:03

ASP.NET控件ID

2009-08-17 09:24:25

ASP.NET控件

2009-07-27 16:19:59

ASP.NET報(bào)表控件

2009-08-03 15:08:00

SqlDataSour

2009-07-27 17:25:53

ASP.NET驗(yàn)證控件

2009-07-28 13:22:13

DataList和ReASP.NET

2009-07-21 15:27:12

ASP.NET 2.0

2009-07-24 09:57:25

ASP.NET HTM

2009-08-07 15:32:28

ASP.NET復(fù)合控件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號