【摘 要】許多網(wǎng)站后臺管理系統(tǒng)都包含了權(quán)限控制,根據(jù)管理員的身份設(shè)置相應(yīng)的權(quán)限,只有具備該權(quán)限的才可對其執(zhí)行相應(yīng)的操作,如只有超級管理員才能對管理員進(jìn)行添加、修改、刪除;新聞管理員只能對新聞模塊進(jìn)行操作,產(chǎn)品管理員只能對產(chǎn)品模塊進(jìn)行操作,本文將著重介紹如何實(shí)現(xiàn)對管理員進(jìn)行權(quán)限控制。
【關(guān)鍵詞】ASP 管理員 權(quán)限
一、功能分析
本文重點(diǎn)介紹三個不同身份的管理員對后臺管理模塊中管理員管理、新聞管理、產(chǎn)品管理的不同權(quán)限處理。
超級管理員該管理員有權(quán)限操作管理員管理(添加、修改、刪除)、新聞管理(添加、修改、刪除)、產(chǎn)品管理(添加、修改、刪除)。
新聞管理員只能操作新聞管理(添加、修改、刪除),點(diǎn)擊其他管理時彈出警告窗口。
產(chǎn)品管理員只能操作產(chǎn)品管理(添加、修改、刪除),點(diǎn)擊其他管理時彈出警告窗口。
二、數(shù)據(jù)庫設(shè)計(jì)
管理員表中需要有用戶名、密碼、管理員身份,在系統(tǒng)初始化時,數(shù)據(jù)庫中添加一個“超級管理員”用戶“Admin”、一個“新聞管理員”用戶“NewsAdmin”和一個“產(chǎn)品管理員”用戶“ProductsAdmin”。
字段:ID (自動編號、主鍵)、PowerName(文本)、PassWord(文本)、Grade(文本)
管理員表:
IDPowerNamePassWordGrade
1Adminadmin超級管理員
2NewsAdminNewsadmin新聞管理員
3ProductsAdminproductsadmin產(chǎn)品管理員
三、實(shí)現(xiàn)思路及關(guān)鍵代碼
(一)創(chuàng)建登錄頁面和登錄失敗頁面
創(chuàng)建后臺管理用戶登錄頁面login.asp和登錄失敗頁面dlsb.asp,在管理用戶登錄面面login.asp中設(shè)置階段變量MM_username,利用服務(wù)器行為驗(yàn)證管理員用戶名和密碼,如果成功則轉(zhuǎn)到后臺管理主頁面admin.asp,否則轉(zhuǎn)到登錄失敗頁面dlsb.asp,要求重新登錄或返回首頁。
(二)問題分析
后臺管理的各個模塊如用戶管理、新聞管理和產(chǎn)品管理導(dǎo)航菜單都設(shè)置兩個不同的鏈接,一個點(diǎn)擊時調(diào)用函數(shù)show(k),彈出該模塊管理的下拉菜單進(jìn)入相應(yīng)的管理,一個點(diǎn)擊時調(diào)用函數(shù)warn(),彈出警告窗口,告之沒有權(quán)限管理。每個模塊的管理菜單利用插入DIV層進(jìn)行制作,并讓其進(jìn)入該頁面時隱藏相應(yīng)的層。當(dāng)網(wǎng)站的管理員進(jìn)入該頁面,利用階段變量MM_username進(jìn)行篩選數(shù)據(jù)庫,并根據(jù)管理員的身份進(jìn)行權(quán)限設(shè)置,使得新聞管理員只能管理新聞,產(chǎn)品管理員只能管理產(chǎn)品,只有超級管理員才可管理所有的內(nèi)容。
(三)關(guān)鍵代碼
(1)編寫JavaScrip代碼,設(shè)置層顯示和隱藏有參函數(shù)show(k)和彈出警告窗無參函數(shù)warn().
(2)根據(jù)用戶的身份,編寫設(shè)置權(quán)限初始值關(guān)鍵代碼
<%
dim a,b,c,
if((yh.Fields.Item(\"Grade \").Value)=\"超級管理員\")then
b=1
c=1
c=1
else if((yh.Fields.Item(\"Grade \").Value)=\"新聞管理員\")then
a=0
b=1
c=0
else if((yh.Fields.Item(\"Grade \").Value)=\"產(chǎn)品管理員\")then
a=0
b=0
c=1
end if
end if
end if
%>、
(3)編寫導(dǎo)航菜單根據(jù)權(quán)限判斷顯示部分代碼
<% If a=1 Then %>
<% Else %>
<% End If %>
<% If b=1 Then %>
<% Else %>
<% End If %>
<% If c=1 Then %>
<% Else %>
<% End If %>
四、總結(jié)
通過關(guān)鍵代碼中可發(fā)現(xiàn)1代表有權(quán)限,0代表沒有權(quán)限,所有我們只要在進(jìn)入頁面以后通過對進(jìn)入用戶的身份的進(jìn)行判斷,并根據(jù)其權(quán)限進(jìn)行初初始化賦值就可以輕松地實(shí)現(xiàn)對管理員的權(quán)限控制,其中要注意的是功能菜單中的各模塊下拉菜單的Div層要設(shè)置讓它一進(jìn)入網(wǎng)頁后就要隱藏不顯示,另外還要對每一個DIV層進(jìn)行設(shè)置ID名稱。
參考文獻(xiàn):
[1]陳益材 朱文軍 Dreamweaver CS3+ASP網(wǎng)站建設(shè)實(shí)例詳解 河北:人民郵電出版社 2010.1
[2]科文 綜合項(xiàng)目實(shí)戰(zhàn) 北京:科學(xué)技術(shù)文獻(xiàn)出版社2008.5