成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET電子商務系統設計淺析

開發 后端
本文向您介紹ASP.NET電子商務系統的設計,包括ASP.NET技術的介紹和RBAC(角色訪問控制)的基本思想,由此指導您進行ASP.NET電子商務系統的用戶權限設計。

1 引言

ASP.NET電子商務系統對安全問題有較高的要求,傳統的訪問 控制方法DAC(Discretionary Access Control,自主訪問控制模型)、MAC(Mandatory Access Control,強制訪問控制模型)難以滿足復雜的企業環境需求。

因此,NIST(National Institute of Standards and Technology,美國國家標準化和技術委員會)于90年代初提出了基于角色的訪問控制方法,實現了用戶與訪問權限的邏輯分離,更符合企業的用戶、組織、數據和應用特征。ASP.NET是微軟為了抗衡JSP而推出的新一代ASP(Active Server Pages)腳本語言,它借鑒了JSP的優點,同時它又具有自身的一些新特點。

本文將首先介紹ASP.NET的基本情況和RBAC(Role Based Access Control)的基本思想,在此基礎上,給出ASP.NET電子商務系統中實現用戶權限控制的一種具體方法。 

2 ASP.NET概述

2.1 ASP.NET

ASP.NET是微軟流行的動態WEB編程技術活動服務器網頁(ASP)的最新版本,但它遠不是傳統ASP簡單升級。ASP.NET和ASP的最大區別在于編程思維的轉換,ASP.NET是真正的面向對象(Object-oriented),而不僅僅在于功能的增強。

在ASP.NET中,Web 窗體頁由兩部分組成:視覺元素(HTML、服務器控件和靜態文本)和該頁的編程邏輯。其中每一部分都存儲在一個單獨的文件中。可視元素在一個擴展名為 .aspx 文件中創建,而代碼位于一個單獨的類文件中,該文件稱作代碼隱藏類文件擴展名為.aspx.vb 或 .aspx.cs。這樣,.aspx文件中存放所有要顯示的元素,aspx.vb或.aspx.cs文件中存放邏輯。

2.2 用戶控件(UserControl)

為了使用戶能夠根據需要方便地定義控件,ASP.NET引入了 Web 窗體用戶控件的概念。實際上,只要將.aspx稍作修改即可轉換為 Web 用戶控件,擴展名為 .ascx,.ascx和.aspx文件一樣也有一個存放邏輯的代碼隱藏類文件,擴展名為.ascx.vb或.ascx.cs,只是它不能作為獨立 Web 窗體頁來運行,只有當被包含在 .aspx文件中時,用戶控件才能工作。

通過以下兩個步驟在WEB窗體頁中設置用戶控件:

(1)使用@ Register指令在.aspx文件中注冊用戶控件。如要注冊在放在相對路徑“../UserControl/”下的頭文件headinner.ascx的方法為: 

(2)在服務器控件的開始標記和結束標記之間() 聲明該用戶控件元素。例如要聲明上面所導入的控件的語法為:

這樣,該控件就成為頁的一部分,并將在處理該頁時呈現出來。并且,該控件的公共屬性、事件和方法將向 Web 窗體頁公開并且可以通過編程來使用。根據這個原理,就可以將每個頁面初始化時所要執行的操作(如登錄驗證,角色驗證)封裝在用戶控件當中。 

3 RBAC的基本思想

RBAC(角色訪問控制)的基本思想可簡單地用圖1來表示,即把整個訪問控制過程分成兩步:訪問權限與角色相關聯,角色再與用戶關聯,從而實現了用戶與訪問權限的邏輯分離。

由于RBAC實現了用戶與訪問權限的邏輯分離,因此它極大的方便了權限管理。例如,如果一個用戶的職位發生變化,只要將用戶當前的角色去掉,加入代表新職務或新任務的角色即可,角色/權限之間的變化比角色/用戶關系之間的變化相對要慢得多,并且委派用戶到角色不需要很多技術,可以由行政管理人員來執行,而配置權限到角色的工作比較復雜,需要一定的技術,可以由專門的技術人員來承擔,但是不給他們委派用戶的權限,這與現實中情況正好一致。

4 用戶權限在.NET中的設計與實現

利用.NET中的用戶控件實現權限控制的基本思想是:根據角色訪問控制(RBAC)的基本原理,給用戶分配一個角色,每個角色對應一些權限,然后利用ASP.NET中的用戶控件(UserControl)來判斷該用戶對應的角色是否對訪問頁面有訪問的權力。

下面將從數據庫設計、添加角色和用戶控件的使用等三方面來闡述具體實現過程。

4.1 數據庫中表的設計

首先,在數據庫中設計功能模塊表、功能表和角色表等三個表。

(1) 功能模塊表

為了管理好用戶的權限,首先要組織好系統的模塊,為此設計了一個功能模塊表。見表1。

(2) 功能表

每個功能模塊所具有的子功能稱為功能,如商品管理模塊goods(屬于功能模塊的范疇)包含商品信息查詢、商品信息更新、商品信息刪除、商品定價信息查詢以及商品定價信息更新五種功能,功能表的設計見表2。

上面提到的例子可以作為這樣幾條記錄分別插入功能模塊表和功能表。

insert into TModule values(0,‘商品管理模塊‘,‘goods‘,5);

insert into Tfunction values(0,‘商品信息查詢‘,‘selectgoods‘,0);

insert into Tfunction values(1,‘商品信息更新‘,‘updategoods‘,0);

insert into Tfunction values(2,‘商品信息刪除‘,‘deletegoods‘,0);

insert into Tfunction values(3,‘商品定價信息查詢‘,‘selectgoodsprice‘,0);

insert into Tfunction values(4,‘商品定價信息更新‘,‘updategoodsprice‘,0);

(3) 角色表

ASP.NET電子商務系統中角色表的設計關鍵在于角色值的定義,它是一個由0和1組成的類似二進制數的字符串。而功能表中的funcNo (功能編號)字段表示該功能在角色表的roleValue (角色值)字段中的位置,如果該位置對應的數值是0,表示該角色無此權限,如果值為1,則表示該角色擁有此權限。如角色普通會員的角色值為100100… 00(共100位),如上所示,商品信息查詢的功能編號為0,角色值100100…00的第0位為1,所以該普通會員角色擁有商品信息查詢的功能;相反,該角色值的第1位為0,而功能編號為1 的功能為商品信息更新,所以該普通會員角色沒有商品信息更新的權限。它們的關系可由圖2來表示。

4.2

角色的添加

有了上面幾個表,角色頁面的功能模塊以及其對應的功能都可以從功能模塊表和功能表中讀出,如圖3所示。

在將新角色普通會員插入數據庫時,先將角色值的所有位都置為0,然后利用.NET Framework 類庫中的Replace函數將角色值中的打上勾的功能相應的功能編號位的值改為1。 

例如,新添加一個角色名為普通會員的角色,它擁有的功能為商品信息查詢(功能編號0)和商品定價信息查詢(功能編號3)兩項,則角色值應為1001000……00(100位),即角色值中第0位和第3位的值為1,其余為0。

#p#

4.3 利用用戶控件實現訪問權限

在定義好用戶控件.ascx文件(head.ascx)及.ascx.cs(head.ascx,cs)文件時,接下去只要在.aspx文件中注冊和聲明它就可以了。

(1) 注冊

(2) 聲明

經過實踐,在.aspx文件中聲明.ascx文件可分為幾種情況:

第一種情況:

第二種情況:

第三種情況: 

字段flag是用來控制怎樣進行權限檢查的標志,funcname指功能表中的功能英文名。如果flag為空,則不執行權限檢查(第一種情況);否則如果flag=="0",則表示同時具有selectgoods(商品信息查詢)和 updategoods(商品信息更新)這兩種權限的角色所對應的用戶才有權利查看該頁(第二種情況);否則,如果flag=="1",則認為,具有 selectgoods(商品信息查詢)或 updategoods(商品信息更新)這兩種權限中任意一種權限的用戶就有權利查看該頁(第三種情況)。

上面進行權限檢查的過程全部由用戶控件來實現,其全部方法都封裝在.ascx.cs文件中,其中最主要的一個方法是檢查某一角色是否擁有某一確定權限的checkAuth(string roleId,string funcEName)方法。這個方法的思想如圖4所示。

圖4中roleValue(角色值)的第0位(selectgoods的功能編號)值為1,表示該角色擁有selectgoods(商品信息查詢)的權限。這樣,我們把對權限檢查的所有邏輯都封裝在了用戶控件中,因此,對WEB窗體頁.aspx文件而言,只需在導入.ascx文件時確定用戶在訪問該頁面時所應擁有的權限,而不需對aspx.cs進行任何改動。

由上所述,可以很清楚地看出,只要在用戶控件中對用戶權限進行控制,再把它包括在.aspx文件中(這件事作者本來就是要做的),那么在編程的時候就不必考慮復雜的權限問題了。 

5 結束語

本文在開發一個ASP.NET電子商務系統的實踐中發現,公司對系統用戶的權限控制非常重視。因此,設計一個簡單方便又行之有效的權限控制機制對于電子商務系統是必不可少的。本文所提出的基于ASP.NET的電子商務系統用戶權限設計和實現方法已經在實際的工作中得到了驗證,修改指定權限組的操作變得非常方便。 

 

【編輯推薦】

  1. ASP.NET網頁模板基礎知識介紹
  2. 在ASP.NET中向數據庫批量插入數據
  3. ASP.NET用Post方式向網頁發送數據
  4. ASP.NET 2.0部署WEB應用程序淺析
  5. ASP.NET中的HttpWorkerRequest對像
  6. 介紹ASP.NET MVC框架
責任編輯:冰荷 來源: lwck
相關推薦

2009-07-24 10:46:00

ASP.NET MVC

2009-08-05 16:53:14

ASP.NET組件設計

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設計

2009-07-28 13:21:27

2009-08-07 17:49:44

控件設計器

2009-07-28 13:47:47

ASP.NET電子商務ASP.NET購物車

2011-03-02 09:00:10

ASP.NET MVC

2009-08-03 14:15:24

ASP.NET系統用戶

2009-08-05 16:59:55

ASP.NET組件設計

2009-08-05 18:36:12

ASP.NET Che

2009-07-24 13:41:15

ASP.NET AJA

2009-08-07 16:32:52

ASP.NET控件設計時支

2009-08-07 17:59:35

控件設計器

2009-08-05 15:50:13

ASP.NET優點

2009-07-31 12:43:59

ASP.NET MVC

2009-12-18 16:51:41

ASP.NET概述

2009-08-10 14:38:29

ASP.NET組件設計

2009-08-04 14:18:49

ASP.NET郵件列表

2009-07-29 09:34:54

IsPostBack屬ASP.NET

2009-08-04 17:16:16

ASP.NET代碼優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久国产精品 | 欧美国产激情 | 国产精品一区二区久久精品爱微奶 | 国产日韩精品视频 | 亚洲成人av| 欧州一区二区三区 | 艹逼网| 欧美男人天堂 | 免费一区 | 亚洲精品一区av在线播放 | 久久99精品久久久久久噜噜 | 日本精品视频 | 伊人网99 | 国产福利在线播放 | 亚洲综合在 | 亚洲一区二区中文字幕 | 国产综合欧美 | 日韩精品一区二区三区在线播放 | 老司机午夜性大片 | 伊人超碰 | 欧美激情在线播放 | 国产激情一区二区三区 | 激情免费视频 | 日韩成人在线电影 | 亚洲欧美日韩一区二区 | 91成人免费电影 | 精品久久久久久亚洲精品 | 亚洲精品一区在线 | 国产成人一区二区三区 | 成人在线观看免费爱爱 | 99热热热| 精品国产欧美一区二区 | 男人天堂视频在线观看 | 欧美舔穴 | 国产成人精品一区二区三区 | 亚洲97| 精品一区二区三区免费视频 | 日韩国产中文字幕 | 中文字幕亚洲欧美 | 亚洲成人自拍 | 成人精品在线 |