這兩天在公司,主管讓我做一個(gè)小型的CRM系統(tǒng),花了將近一周
時(shí)間,整個(gè)系統(tǒng)是做出來(lái)了,不過(guò)沒(méi)什么美感可言-_-!不過(guò)這只是
測(cè)試我能力的一個(gè)項(xiàng)目,對(duì)界面沒(méi)啥要求了,呵呵... 系統(tǒng)中我其
他沒(méi)什么可以說(shuō)的,就是關(guān)于權(quán)限設(shè)置這塊我得提一下,是為了可
以控制每個(gè)頁(yè)面的訪問(wèn)權(quán)限,整個(gè)設(shè)計(jì)大概分以下幾點(diǎn):
1)數(shù)據(jù)庫(kù)的設(shè)計(jì)
ID 自動(dòng)編號(hào)
PageIndex (頁(yè)面指向的地址)
PageText (頁(yè)面的說(shuō)明文本)
IsViewOk (是否允許訪問(wèn),0/1,1是可訪問(wèn))
UserGroup (用戶組ID)
然后把整個(gè)系統(tǒng)所有的頁(yè)面加入到數(shù)據(jù)庫(kù)中,每個(gè)用戶組都有他的
記錄
也就是,假設(shè),用戶組有0,1,2三組,頁(yè)面有Default.aspx,ViewP
age.aspx,那么數(shù)據(jù)庫(kù)中就有
---------------------------------------------------
ID PageIndex PageText IsViewOk UserGroup
---------------------------------------------------
1 Default.aspx 首頁(yè) 1 0
2 ViewPage.aspx 訪問(wèn)頁(yè) 0 0
3
4
5
6 ................................................
---------------------------------------------------
2)具體實(shí)現(xiàn)
設(shè)置Session["UserGroup"]
在每次訪問(wèn)一個(gè)頁(yè)面時(shí)候獲取頁(yè)面的名稱
訪問(wèn)http://localhost:76832/ViewPage.aspx,獲取
“ViewPage.aspx”
string url = Request.CurrentExecutionFilePath.ToString();
url = url.Substring(url.LastIndexOf("/")+1);
然后根據(jù) url 和 Session["UserGroup"]從數(shù)據(jù)庫(kù)中的PageIndex,
UserGroup 字段查找 IsViewOK字段,并將其值轉(zhuǎn)換為Bool類型返回
,然后確定當(dāng)前訪問(wèn)的頁(yè)面是否是允許訪問(wèn)的
在Page_Load中的代碼
if (!IsPostBack)
{
string url =
Request.CurrentExecutionFilePath.ToString();
url = url.Substring(url.LastIndexOf("/") + 1);
if (ubll.IsValidpage(url,
Session["UserGroup"].ToString()))
{
//實(shí)際操作
}
else
{
Response.Write("<script>javascript:alert('
您沒(méi)有訪問(wèn)該頁(yè)的權(quán)限!');window.location='default.aspx';</s
cript>");
}
}
具體實(shí)現(xiàn)大家可以自己去試試
聯(lián)系客服