0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

.NET MVC身份驗證訪問權(quán)限控制設(shè)計

454398 ? 來源:博客園 ? 作者:劉徹 ? 2020-11-06 11:23 ? 次閱讀

標(biāo)識權(quán)限

因為后臺的訪問控制都是基于Action級別 的控制,而我們使用系統(tǒng)都是以功能模塊為最小單位的控制,所以我們首先需要建立一個Action和功能塊的對應(yīng)關(guān)系,如:“創(chuàng)建用戶”功能對應(yīng)的Action是“Create”。由于開發(fā)人員的差異有時候這種對應(yīng)的關(guān)系很難得到保證。應(yīng)該避免一個Action操作多種功能,這對與基于Action級別的訪問控制不利。一般不存在一個操作對應(yīng)多個Action。這樣我們建立的Action和功能映射表就是一一對應(yīng)的了,完全可以使用Controler+Action的名稱來作為功能的權(quán)限標(biāo)識,但是我們經(jīng)常有出現(xiàn)重載的Action在GET和POST請求中,所以我們最終使用Controler+Action+RequestType。

接下來,我們需要將角色和功能關(guān)聯(lián)起來。這樣在權(quán)限樹中,我們以中文描述,實際以其權(quán)限標(biāo)識和角色標(biāo)識關(guān)聯(lián)起來。

數(shù)據(jù)庫設(shè)計

流程圖:

后臺訪問控制

在首次驗證用戶名和密碼時,應(yīng)該將該用戶所有的角色的權(quán)限的標(biāo)識無重復(fù)的存儲在該用戶的Session中。有時候為了避免多表查詢帶來的性能問題,我們可以在用戶表中冗余的存儲其所有的權(quán)限標(biāo)識。

我們將所有需要權(quán)限的Action都使用擴展了過濾器的的屬性標(biāo)識,這樣在執(zhí)行Action之前就會驗證用戶的權(quán)限,通過獲取用戶當(dāng)前訪問的Controler和Action名,查找保存到用戶Session中的權(quán)限標(biāo)識集合就可以確定其是否有訪問權(quán)限了。

視圖訪問控制

我們雖然在后臺功能訪問上做了決定性限制,但為了用戶體驗度,我們還需要控制視圖級的功能顯示和隱藏,用戶沒有 權(quán)限的功能塊,不應(yīng)該顯示在當(dāng)前用戶視圖中。這個在MVC中,只能通過在視圖中寫if...else...來判斷了。至于判斷的條件還是功能的“權(quán)限標(biāo)識”,看當(dāng)前用戶Session權(quán)限標(biāo)識集合中是否存在即可。

身份驗證-雙證模式

參見“雙證模式”。

票證:我們設(shè)計一個獨立票證發(fā)放類,提供簡單和安全兩種票證生成方法,簡單票證可以易于受到“會話劫持”攻擊,但生成效率高,使用GUID即可。使用安全票證,就是將變數(shù)大的隨機信息,如用戶瀏覽器和IP、時間、隨機數(shù)等信息作為產(chǎn)生票證的參數(shù),同時在服務(wù)端Session中保存其瀏覽器、IP等客戶端信息,以便核對用戶的瀏覽器和IP信息是否一致,如果不一致說明此請求為黑客“會話劫持攻擊”行為。

密碼加密:使用標(biāo)準(zhǔn)的MD5加密策略,MD5“雪崩效應(yīng)”高,且不可解密。只有在極端情況下使用超級計算機通過“碰撞”才能解密。普通計算機幾乎不可能產(chǎn)生有效碰撞。(更正:2005年王曉云教授已使用普通微機就能在短時間內(nèi)產(chǎn)生一個有效碰撞。估計可以使用SHA-2了。)

為提高性能,以上兩個類使用“單例模式”。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3807

    瀏覽量

    64434
  • MVC
    MVC
    +關(guān)注

    關(guān)注

    0

    文章

    73

    瀏覽量

    13875
收藏 人收藏

    評論

    相關(guān)推薦

    無線身份驗證的門禁控制系統(tǒng)設(shè)計方案

    管控——只有經(jīng)認(rèn)證的設(shè)備才能夠加入該網(wǎng)絡(luò)(與任何計算機都可訪問任何網(wǎng)站的互聯(lián)網(wǎng)不同),從而形成了隱性的、嚴(yán)格的身份驗證機制。  各端點之間的TIP消息采用符合行業(yè)標(biāo)準(zhǔn)的加密方法進行加密,以便進行符合
    發(fā)表于 11-05 11:11

    facexx人臉識別身份驗證迎來新技術(shù)革新

    現(xiàn)在我們在很多公共場合里面,都可以通過一些快速通道進入到我們需要進入的場合里面。身份驗證已經(jīng)不再是一個需要等待或者是需要被質(zhì)疑的過程。因為現(xiàn)在人工智能技術(shù)的出現(xiàn),已經(jīng)為身份驗證提供了一個更強大的支持
    發(fā)表于 12-19 15:06

    Vivado和SDK身份驗證錯誤

    嘗試運行SDK或Vivado的安裝程序時,出現(xiàn)“身份驗證錯誤:發(fā)生了未知異常。請驗證您的用戶ID和密碼,然后重試”我可以登錄該站點,另一位同事可以登錄該站點。我們可以下載安裝程序,但是當(dāng)我們嘗試安裝
    發(fā)表于 01-02 14:55

    PN5180無法使用mifare classic進行身份驗證怎么解決?

    ....ok 2. Anticollision CL1.....ok 3. 選擇......ok 4. 驗證....錯誤當(dāng)我發(fā)送身份驗證命令時,我得到 0x02(等待卡響應(yīng)超時(卡不存在)。)但是卡存在,我
    發(fā)表于 03-23 08:46

    如何使用TapLinx針對Ultralight C進行身份驗證

    使用 TapLinx 針對 Ultralight C 進行身份驗證
    發(fā)表于 04-21 06:08

    什么是身份驗證和授權(quán)

    什么是身份驗證和授權(quán) 根據(jù)RFC2828(Internet Security Glossary,May2000),驗證是“校驗被或向某系統(tǒng)實體聲明的身份的過程”。此處的關(guān)鍵字
    發(fā)表于 04-03 16:03 ?5746次閱讀

    什么是Kerberos身份驗證協(xié)議

    什么是Kerberos身份驗證協(xié)議 kerberos是由MIT開發(fā)的提供網(wǎng)絡(luò)認(rèn)證服務(wù)的系統(tǒng)。它可用來為網(wǎng)絡(luò)上的各種server提供認(rèn)證服務(wù),使得口令不再
    發(fā)表于 04-03 16:04 ?3031次閱讀

    什么是詢問握手身份驗證協(xié)議

    什么是詢問握手身份驗證協(xié)議 CHAP(詢問握手身份驗證協(xié)議)是用于遠(yuǎn)程登錄的身份驗證協(xié)議,通過三次握手周期性的校驗對端的身份,在初始鏈
    發(fā)表于 04-03 16:06 ?2680次閱讀

    什么是密碼身份驗證協(xié)議

    什么是密碼身份驗證協(xié)議 PAP是一種身份驗證協(xié)議,是一種最不安全的身份證協(xié)議,是一種當(dāng)客戶端不支持其它身份認(rèn)證協(xié)議時才被用來
    發(fā)表于 04-03 16:07 ?1607次閱讀

    身份驗證和生物識別身份系統(tǒng)應(yīng)用越加廣泛

    身份驗證和生物識別身份系統(tǒng)應(yīng)用越加廣泛
    發(fā)表于 02-27 14:37 ?1573次閱讀

    因素身份驗證鎖開源資料

    電子發(fā)燒友網(wǎng)站提供《因素身份驗證鎖開源資料.zip》資料免費下載
    發(fā)表于 07-04 14:31 ?1次下載
    因素<b class='flag-5'>身份驗證</b>鎖開源資料

    PCB身份驗證

    電子發(fā)燒友網(wǎng)站提供《PCB身份驗證器.zip》資料免費下載
    發(fā)表于 07-22 10:09 ?2次下載
    PCB<b class='flag-5'>身份驗證</b>器

    通過質(zhì)詢和響應(yīng)身份驗證實現(xiàn)安全訪問控制

    本應(yīng)用筆記回顧了門禁控制的關(guān)鍵:機械、磁性、接觸式、RFID。它描述了質(zhì)詢和響應(yīng)身份驗證(質(zhì)詢、機密和消息身份驗證代碼或 MAC)以及 SHA-1 算法的重要作用。最后,本文解釋了為什么質(zhì)詢和響應(yīng)
    的頭像 發(fā)表于 01-29 15:58 ?1253次閱讀
    通過質(zhì)詢和響應(yīng)<b class='flag-5'>身份驗證</b>實現(xiàn)安全<b class='flag-5'>訪問</b><b class='flag-5'>控制</b>

    通過質(zhì)詢和響應(yīng)身份驗證實現(xiàn)安全訪問控制

    本應(yīng)用筆記從信息技術(shù)(IT)這一新角度探討了物理訪問控制的關(guān)鍵。它比較了各種類型的關(guān)鍵技術(shù)(機械、磁性、接觸、RFID),并評估了這些密鑰的優(yōu)勢和劣勢。具有質(zhì)詢和響應(yīng)身份驗證的密鑰克服了傳統(tǒng)靜態(tài)數(shù)據(jù)
    的頭像 發(fā)表于 03-08 15:22 ?732次閱讀
    通過質(zhì)詢和響應(yīng)<b class='flag-5'>身份驗證</b>實現(xiàn)安全<b class='flag-5'>訪問</b><b class='flag-5'>控制</b>

    HDCP 2.2:身份驗證和密鑰交換

    通信。即使發(fā)射器沒有與 HDCP 接收器對應(yīng)的存儲主密鑰,也會進行身份驗證。這些密鑰信息以消息的形式發(fā)送。如果我們使用HDMI,那么這些消息將以大端格式通過基于I2C的控制總線。
    的頭像 發(fā)表于 05-29 09:28 ?4366次閱讀
    HDCP 2.2:<b class='flag-5'>身份驗證</b>和密鑰交換