程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0中使用自定義provider

ASP.NET 2.0中使用自定義provider

編輯:關於ASP.NET

在ASP.NET 2.0中,新增加的membership provider功能,以及結合功能強大 的一系列注冊,登陸控件,可以很方便地對用戶的登陸和權限等進行管理(參見 <<ASP.NET 2.0登陸控件簡介>>)。

但是,可能大家會發現,ASP.NET 2.0自帶的這些登陸控件和membership的管 理功能,默認的是和sql server 2005 express搭配使用的,那麼,如何改成使 用SQL Server 2000或者是其他的數據源,如access,oracle等呢?如果自己想在 應用中,另外重新寫一個對登陸用戶或者用戶權限等管理的應用,要如何修改呢 ?在本文中,將給出在ASP.NET 2.0中使用自定義provider,以配合登陸控件來實 現一個簡單的登陸過程。

為了明白ASP.NET 2.0中的provider是如何工作的,首先看下下面的結構圖:

由上圖可以清楚看到,在最上面的一層,是各類的登陸控件,下面一層是與 member有關的membership api。在Membership Api中,membership 類執行有關 對用戶的操作,比如增加,刪除用戶,而MembershipUser類則存儲有關用戶的個 人信息,如用戶名,密碼,EMAIL等信息。

在Visual Studio 2005 beta 2中,默認使用的是Sql express membership provider。Provider的作用,是起到溝通Membership Api以及數據庫,使得用戶 並不需要關心要使用的是何種數據庫,全部的操作都可以用各類相應的數據 provider來實現。

但很多時候,ASP.NET 2.0默認支持的provider是不能滿足其需要的,我們可 以自己根據需要編寫provider.在本文中,將介紹如何使用access數據庫,建立 一個數據表,存放用戶的信息。本文介紹的方法,也可以適用在其他數據庫上。

 首先,我們打開Visual Studio 2005 beta 2,選用VB.NET,新建一個WEB SITE站點。在這個例子中,為簡單起見,我們設置一個用戶注冊表單,一個登陸 的表單,新用戶可以先注冊,之後進行登陸。

接著,往默認的窗體中,拖放一個CreateUserWizard的控件,這是一個系統 提供的新建用戶的自動控件,可以很方便地新建一個用戶。為了頁面美觀,我們 點控件右上方的"智能感知",選擇"auto format",在彈出的窗體中,再選 擇"Elegant"樣式,如下圖所示:

當然,我們可以任意修改該控件的文字提示。這裡我們為了讓能使用戶在注 冊後能轉到登陸頁面,因此,設置該控件的ContinueDestinationPageUrl屬性的 值為:Login.aspx,這個頁面等下會編寫。

接著,再拖拉一個LoginView控件到default.aspx頁面中。在該控件中,可以 設置兩種模版:Anonymous模版,表示在用戶未登陸前,訪客看到的狀態; LoggedIn 模版,表示等用戶成功登陸後,看到的狀態(這裡可以設置一些文字 顯示,比如歡迎進入等,同時一般會顯示用戶的名字)。

在這裡,我們在LoginView控件中的LoggedIn 模版中,我們輸入"You are logged in",並且增加一個LoginName和一個LoginStatus控件。其中,LoginName 控件顯示登陸後用戶的ID,而LoginStatus控件,則當用戶登陸後,會顯示 logout(注銷)的鏈接。如下兩圖所示:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved