溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ASP.NET登陸控件的使用方法

發(fā)布時(shí)間:2021-07-15 10:56:15 來(lái)源:億速云 閱讀:267 作者:chen 欄目:編程語(yǔ)言

本篇內(nèi)容主要講解“ASP.NET登陸控件的使用方法”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“ASP.NET登陸控件的使用方法”吧!

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

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

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

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

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

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

ASP.NET登陸控件的使用方法

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)入下一步。

ASP.NET登陸控件的使用方法

4)系統(tǒng)會(huì)允許你對(duì)某一用戶進(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)識(shí)并使用ASP.NET 2.0 2.0中的登陸控件。這些控件在工具箱的Login選項(xiàng)組中,共有Login, LoginView, PasswordRecovery, LoginStatus, LoginName, CreateUserWizard, ChangePassword 共7個(gè),下面逐一介紹:

Login控件

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

ASP.NET登陸控件的使用方法

Loginname和LoginStatus控件

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

〈form runat="server" 〉     Welcome 〈asp:LoginName id="lnUser" runat="server"/ 〉,   your login was successful!〈br / 〉〈br / 〉   〈asp:LoginStatus id="lsUSer" runat="server"/ 〉     〈/form 〉

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

ASP.NET登陸控件的使用方法

LoginView控件

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

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

〈 asp:LoginView id="lvDorknozzle" runat="server" 〉   〈 LoggedInTemplate 〉   Welcome   〈 asp:LoginName id="lnUser" runat="server"/ 〉   〈 /LoggedInTemplate 〉   〈 AnonymousTemplate 〉   Welcome to the Dorknozzle site!〈 br / 〉   Please click on the New User link   to register on our site.   〈 /AnonymousTemplate 〉   〈 /asp:LoginView 〉

運(yùn)行如下圖:

ASP.NET登陸控件的使用方法

CreateUserWizard控件

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

ASP.NET登陸控件的使用方法

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

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

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

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

〈configuration〉   〈system.web〉   〈authentication mode="Forms"/〉   〈smtpMail serverName="Localhost"/〉   〈/system.web〉   〈/configuration〉

PasswordRecovery密碼恢復(fù)控件

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

〈asp:PasswordRecovery id="prForgotPass"   runat="server"  〉   〈/asp:PasswordRecovery  〉

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

ASP.NET登陸控件的使用方法

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

ASP.NET登陸控件的使用方法

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

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

ChangePassword 更改密碼控件

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

ASP.NET登陸控件的使用方法

直接使用Membership API

有時(shí)候,需要對(duì)成員身份進(jìn)行更高級(jí)別(比 Web 站點(diǎn)管理工具或 Login 控件提供的控制級(jí)別高)的控制。在這些情況下,可以直接使用 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ù),代碼如下:

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

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

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

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

〈asp:GridView id="gvUsers" runat="server"   AutoGenerateColumns="False"〉   〈Columns〉   〈asp:BoundField HeaderText="Username"   DataField="Username" /〉   〈asp:BoundField HeaderText="Is Online?"   DataField="IsOnline" /〉   〈asp:BoundField HeaderText="Is Approved?"   DataField="IsApproved" /〉   〈asp:BoundField HeaderText="Email"   DataField="Email" /〉   〈/Columns〉   〈/asp:GridView〉

并將gridview綁定:

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

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

ASP.NET登陸控件的使用方法

到此,相信大家對(duì)“ASP.NET登陸控件的使用方法”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI