發(fā)布時(shí)間:2019-12-22
欄目:其他
[Authorize]publicclassCustomerController : Controller{ ...}
如果未指定參數(shù),此屬性僅檢查用戶是否經(jīng)過(guò)身份驗(yàn)證。不過(guò)ASPCMS批量上傳內(nèi)容 ,此屬性支持 Roles 等其他屬性。Roles 屬性指明將對(duì)具有任一所列角色的用戶授予訪問(wèn)權(quán)限。如果需要多個(gè)角色,可以多次應(yīng)用 Authorize 屬性,也可以編寫自己的篩選器。
[Authorize(Roles="admin, system"]publicclassBackofficeController : Controller{ ...}
Authorize 屬性還可以視需要通過(guò) ActiveAuthenticationSchemes 屬性ASPCMS批量助手,接受一個(gè)或多個(gè)身份驗(yàn)證方案。
[Authorize(Roles="admin, system"ASPCMS批量更新文章, ActiveAuthenticationSchemes="Cookie"]publicclassBackofficeController : Controller{ ...}
ActiveAuthenticationSchemes 屬性是逗號(hào)分隔字符串,用于列出授權(quán)層將在當(dāng)前上下文中信任的身份驗(yàn)證中間件組件。也就是說(shuō),它聲明僅當(dāng)用戶通過(guò) Cookie 方案進(jìn)行身份驗(yàn)證并具有任一所列角色時(shí),才允許訪問(wèn) BackofficeController 類。如前所述,傳遞到 ActiveAuthenticationSchemes 屬性的字符串值必須與應(yīng)用程序啟動(dòng)時(shí)注冊(cè)的身份驗(yàn)證中間件一致。
請(qǐng)注意,在 ASP.NET 2.0 中ASPCMS批量添加產(chǎn)品,身份驗(yàn)證中間件被替換為包含多個(gè)處理程序的服務(wù)。因此,身份驗(yàn)證方案是選擇處理程序的標(biāo)簽。
若要詳細(xì)了解 ASP.NET Core 中的身份驗(yàn)證,建議參閱我在 2017 年 9 月發(fā)表的專欄文章“ASP.NET Core 中的 Cookie、聲明和身份驗(yàn)證”(msdn.com/magazine/mt842501)。
授權(quán)篩選器
系統(tǒng)提供的授權(quán)篩選器使用 Authorize 屬性提供的信息。此篩選器先于其他任何 ASP.NET Core 篩選器運(yùn)行,因?yàn)樗?fù)責(zé)檢查用戶能否執(zhí)行請(qǐng)求的操作ASPCMS批量添加欄目。如果用戶未經(jīng)授權(quán),篩選器會(huì)簡(jiǎn)化管道,并取消請(qǐng)求。
可以創(chuàng)建自定義授權(quán)篩選器,但大部分情況下無(wú)需這樣做。實(shí)際上,最好配置默認(rèn)篩選器依賴的現(xiàn)有授權(quán)層。
角色、權(quán)限和否決
借助角色,可以根據(jù)用戶能夠執(zhí)行或不能執(zhí)行的操作,對(duì)應(yīng)用程序用戶輕松進(jìn)行分組。不過(guò),這種方法不是非常容易表達(dá);至少,還不足以滿足大部分新式應(yīng)用程序的需求。
例如,假設(shè)為相對(duì)簡(jiǎn)單的授權(quán)體系結(jié)構(gòu),可以服務(wù)于網(wǎng)站的普通用戶,以及獲得授權(quán)可訪問(wèn)后端辦公系統(tǒng)軟件并更新內(nèi)容的 Power User。基于角色的授權(quán)層可以圍繞兩個(gè)角色(即用戶和管理員)進(jìn)行構(gòu)建,這些角色定義了每組可以訪問(wèn)的控制器和方法。
涉及否決方面的細(xì)微區(qū)別時(shí),就會(huì)遇到問(wèn)題,因?yàn)檫@些區(qū)別描述了具有給定角色的用戶能夠執(zhí)行或不能執(zhí)行的操作。
例如,可能有用戶喜歡訪問(wèn)后端辦公系統(tǒng)。但在這些用戶中,有的獲得授權(quán)只能編輯客戶數(shù)據(jù),有的獲得授權(quán)只能處理內(nèi)容,還有的獲得授權(quán)既能編輯客戶數(shù)據(jù),也能處理內(nèi)容(見(jiàn)圖 1)。
圖 1:角色層次結(jié)構(gòu)
角色實(shí)質(zhì)上是一種平面概念。如何平展圖 1 中所示的簡(jiǎn)單層次結(jié)構(gòu)?可以創(chuàng)建四個(gè)不同的角色(即 User、Admin、CustomerAdmin 和 ContentsAdmin),但只要否決數(shù)量變多,所需的角色數(shù)量就會(huì)大大增加。即使像這樣的簡(jiǎn)單練習(xí),也表明角色可能并不是處理授權(quán)的最有效方法(優(yōu)先考慮向后兼容性的簡(jiǎn)單方案和實(shí)例除外)。對(duì)于其他所有情況,要求則不同。下面開(kāi)始介紹基于策略的授權(quán)。
文章地址:http://www.brucezhang.com/article/other/Authorizesxtgsmdfsbhkzqhqbfff.html

- 1通王CMS 2.0簡(jiǎn)介
- 2黑帽網(wǎng)站排名檢測(cè)
- 3MySQL中經(jīng)典的too many connection怎么破
- 4網(wǎng)易郵箱洪陸駕:反垃圾郵件需集合全球力量
- 5站群友鏈換鏈神器
- 6云勢(shì)軟件VirgoEDC助力安徽萬(wàn)邦、迪時(shí)咨詢等公司臨床試驗(yàn)數(shù)據(jù)采集智能化
- 7Authorize 屬性通過(guò)聲明的方式保護(hù)控制器或其部分方法
- 8域名是稀有資源,好的域名,在一定時(shí)期內(nèi)會(huì)越來(lái)越升值
- 9解析常見(jiàn)的PHP緩存技術(shù)有哪些
- 10對(duì)ASP.NET程序員非常有用工具