這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)DevExpress中如何根據(jù)當前用戶隱藏導(dǎo)航項,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
十年的和碩網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整和碩建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“和碩網(wǎng)站設(shè)計”,“和碩網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
下載DevExpress v20.1完整版
DevExpress技術(shù)交流群2:775869749 歡迎一起進群討論
DevExpress Universal Subscription擁有.NET開發(fā)需要的所有平臺控件,包含600多個UI控件、報表平臺、DevExpress Dashboard eXpressApp 框架、適用于 Visual Studio的CodeRush等一系列輔助工具。
屢獲大獎的軟件開發(fā)平臺DevExpress Universal 2020年全新首發(fā)v20.1,最新版擁有眾多新產(chǎn)品和數(shù)十個具有高影響力的功能,可為桌面、Web和移動應(yīng)用提供直觀的解決方案,全面解決各種使用場景問題。要體驗?點擊下載>>
系統(tǒng)背景
平臺:Frameworks (XAF & XPO)
產(chǎn)品:DeXpressApp Framework
我們的 Security System 允許通過配置某些用戶的導(dǎo)航權(quán)限為其隱藏導(dǎo)航項,可以用兩種模式配置這些權(quán)限。
從v16.2開始,可以將導(dǎo)航權(quán)限分配給各個導(dǎo)航項目。默認情況下,在使用向?qū)?chuàng)建的新項目中啟用此功能,要在從舊版本升級時啟用它,必須將SecurityStrategy.SupportNavigationPermissionsForTypes選項設(shè)置為false。 如果項目基于Entity Framework,則也有必要更新數(shù)據(jù)庫。
在v16.1和更早版本中,可以通過Type Permissions設(shè)置中提供的AllowNavigate選項將導(dǎo)航權(quán)限分配給特定的對象類型。 如果當前用戶沒有導(dǎo)航到該類型的權(quán)限,則從導(dǎo)航控件中刪除特定于相應(yīng)類型的所有導(dǎo)航項目。 將舊項目升級到v16.2和更高版本時,默認情況下啟用此模式。要在使用向?qū)?chuàng)建的新項目中啟用它,請打開應(yīng)用程序設(shè)計器,并將SecurityStrategy.SupportNavigationPermissionsForTypes屬性值更改為false。
本文將演示如何手動實現(xiàn)第一種模式,如果項目使用的XAF版本尚未實現(xiàn)導(dǎo)航權(quán)限功能,則本文中演示的方法很有用。
注意:如果使用此示例中提供的解決方案并升級到版本16.2,則此代碼可能會停止正常運行。 在這種情況下,請使用本文結(jié)尾處提供的建議。
如果您的XAF版本低于16.2,并且您需要授予單個導(dǎo)航項(例如,DashboardView或特定ListView模型)的權(quán)限,請使用下面介紹的解決方案擴展安全系統(tǒng)的功能。 在本文中,HiddenNavigationItems屬性允許您按其ID隱藏導(dǎo)航項,這將添加到角色類。
本文中顯示的覆蓋ShowNavigationItemController.SynchItemWithSecurity方法的方法也適用于與安全系統(tǒng)不直接相關(guān)的任務(wù),您可以通過這種方式隱藏或自定義任何導(dǎo)航項目。
實現(xiàn)步驟:
實現(xiàn)自定義權(quán)限類型NavigationItemPermission,可用于通過其ID檢查特定導(dǎo)航項目的訪問權(quán)限。
實現(xiàn)一個自定義權(quán)限請求 - NavigationItemPermissionRequest - 該請求將發(fā)送以檢查當前用戶是否有權(quán)訪問某個導(dǎo)航項目。
實現(xiàn)一個自定義權(quán)限請求處理器NavigationItemPermissionRequestProcessor,它將確定當前用戶是否對接收到的權(quán)限請求具有權(quán)限。
使用HiddenNavigationItems屬性實現(xiàn)自定義角色。 使用GetPermissions方法對其進行擴展,以基于HiddenNavigationItems屬性的值創(chuàng)建NavigationPermission實例。
在應(yīng)用程序設(shè)計器安全系統(tǒng)的RoleType屬性中指定自定義角色。
通過處理Program.cs和Global.asax.cs文件中的SecurityStrategy.CustomizeRequestProcessors事件,在應(yīng)用程序中注冊權(quán)限請求處理器。
實現(xiàn)ShowNavigationItemController的后代 - CustomShowNavigationItemController - 并重寫其SynchItemWithSecurity方法以停用CustomSecurityRole.HiddenNavigationItems屬性禁止的導(dǎo)航項。
在項目中執(zhí)行了這些步驟之后,您將能夠?qū)⒕哂蠬iddenNavigationItems屬性的角色分配給所需的用戶,以限制他們對某些導(dǎo)航項的訪問。
注意:本文基于PermissionPolicyRole和PermissionPolicyUser類。在解決方案向?qū)е羞x擇Allow/Deny權(quán)限策略時,安全系統(tǒng)將使用這些類。 如果您的項目是使用較早的XAF版本(16.1之前的版本)創(chuàng)建的,并且使用了SecuritySystemRole和SecuritySystemUser類,請在下面的組合框中更改版本號,以查看這些類的示例。
v16.2的升級說明:
升級到此版本后,此示例舊版本中使用的代碼可能會停止工作。 要解決此問題,請從示例的新版本中復(fù)制相關(guān)代碼,或者通過添加以下方法來修改CustomShowNavigationItemController類:
C#
protected override bool SyncItemsWithRequestSecurity(DevExpress.ExpressApp.Actions.ChoiceActionItemCollection items) { base.SyncItemsWithSecurity(items); return true; }
Visual Basic
Protected Overrides Function SyncItemsWithRequestSecurity(ByVal items As DevExpress.ExpressApp.Actions.ChoiceActionItemCollection) As Boolean MyBase.SyncItemsWithSecurity(items) Return True End Function
上述就是小編為大家分享的DevExpress中如何根據(jù)當前用戶隱藏導(dǎo)航項了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
名稱欄目:DevExpress中如何根據(jù)當前用戶隱藏導(dǎo)航項
網(wǎng)站路徑:http://bm7419.com/article8/goeoip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、面包屑導(dǎo)航、網(wǎng)站設(shè)計公司、手機網(wǎng)站建設(shè)、App開發(fā)、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)