返回“ASP.NET 2.0數據教程目錄”
導言
很多Web程序都支持用戶帳號,根據不同的登錄用戶提供不同的選 項,報表等功能。例如,就我們的教程中,我們要允許供應商公司的一些賬戶能 登錄網站並更新它們的產品-包括產品名稱和單價,或許還有供應商的信息,比 如它們的公司名稱,地址,以及聯系人信息等等。此外,可能我們還想包含一些 帳號留給我們自己公司用戶,以便讓它們能夠登錄並進行產品信息修改,比如股 價,級別調整等等。我們的Web程序同時也可以允許匿名登錄,但是僅僅讓這些用 戶浏覽數據。並包含一個系統用戶,通過對ASP.NET頁面中的數據控件能夠進行數 據的增,改,刪。
在這篇教程中,我們將考察如何動態地根據不同的訪問 用戶來調整數據的修改能力。更進一步,我們新建一個頁面,通過一個可編輯的 DetailsView來顯示供應商信息,以及一個GridView控件列出供應商提供的產品。 如果訪問者來自我們公司,它們可以查看任何供應商信息,編輯他們的地址,編 輯任何一個供應商提供的產品信息。然而,如果用戶來自某個具體某個公司,它 們只能查看和修改他們自己公司的地址信息,或者修改他們那些沒有缺貨的商品 信息。
圖1:一個來自我們公司的用戶可以編輯任何一個供應商信息
圖2:一個來自某個供應商公司的他只能查看和編輯他們自己的信息
讓我們開始吧!
注意:ASP.NET 2.0的MemberShip體系提供了一 個可以創建,管理,驗證用戶帳號的標准的,可以擴展的平台。考慮到考察 membership體系已經超出了本文的內容,本文將假設匿名用戶已經通過了 membership體系,可以認為他們是來自一個具體的供應商或者是我們公司。有關 更多membership的內容,可以參考我的 考察ASP.Net 2.0 的Membership, Roles, Profiles文章系列。
第一步: 允許用戶能夠指定他們的訪問權限
在實際的Web應用程序中,一個用戶的帳號信息已經包含了識別他們是來自我們公 司或者供應商,而且這種信息在用戶一登錄之後便可以在ASP.NET中代碼訪問到。 這個信息可以通過ASP.NET 2.0的角色體系獲取,作為檔案系統或者其他業務上的 用戶帳號信息。
由於這篇教程是示范針對不同登錄用戶調整數據修改的能 力, 並不是要凸顯使用ASP.NET 2.0的membership,roles,和profile系統,我們 會使用一種很簡單的機制來決定用戶訪問網頁的這種能力-通過一個下拉框,用 戶可以選擇他們想要查看或修改任何一個供應商的信息,或者是作為一個供應商 ,只能查看和修改自己的信息。如果用戶使用默認的可以查看和修改任何供應商 信息,那麼她分頁查看所有的供應商,編輯他們的地址信息,以及編輯選擇的某 個供應商的產品的名字或者單價。如果選擇了只能查看和編輯某個供應商的信息 ,那麼她只能查看這個供應商的產品具體信息,更新那些沒有過期的產品的名稱 和單價。
接下來我們將要新建一個DropDownList並給它填充系統供應商信 息數據。打開EditInsertDelete文件夾下的UserLevelAccess.aspx頁面,添加一 個DropDownList控件,設置它的ID屬性為Suppliers,並綁定到一個命名為 AllSuppliersDataSource的ObjectDataSource控件。
圖3:創建一個名為 AllSuppliersDataSource的ObjectDataSource控件