DevExpress中如何根據(jù)當前用戶隱藏導(dǎo)航項

這期內(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)步驟:

  1. 實現(xiàn)自定義權(quán)限類型NavigationItemPermission,可用于通過其ID檢查特定導(dǎo)航項目的訪問權(quán)限。

  2. 實現(xiàn)一個自定義權(quán)限請求 - NavigationItemPermissionRequest - 該請求將發(fā)送以檢查當前用戶是否有權(quán)訪問某個導(dǎo)航項目。

  3. 實現(xiàn)一個自定義權(quán)限請求處理器NavigationItemPermissionRequestProcessor,它將確定當前用戶是否對接收到的權(quán)限請求具有權(quán)限。

  4. 使用HiddenNavigationItems屬性實現(xiàn)自定義角色。 使用GetPermissions方法對其進行擴展,以基于HiddenNavigationItems屬性的值創(chuàng)建NavigationPermission實例。

  5. 在應(yīng)用程序設(shè)計器安全系統(tǒng)的RoleType屬性中指定自定義角色。

  6. 通過處理Program.cs和Global.asax.cs文件中的SecurityStrategy.CustomizeRequestProcessors事件,在應(yīng)用程序中注冊權(quán)限請求處理器。

  7. 實現(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)

h5響應(yīng)式網(wǎng)站建設(shè)