翻譯|行業資訊|編輯:龔雪|2020-09-14 10:26:38.367|閱讀 382 次
概述:DevExpress Universal Subscription擁有.NET開發需要的所有平臺控件,包含600多個UI控件、報表平臺、DevExpress Dashboard eXpressApp 框架、適用于 Visual Studio的CodeRush等一系列輔助工具。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
下載DevExpress v20.1完整版 DevExpress v20.1漢化資源獲取
DevExpress Universal Subscription擁有.NET開發需要的所有平臺控件,包含600多個UI控件、報表平臺、DevExpress Dashboard eXpressApp 框架、適用于 Visual Studio的CodeRush等一系列輔助工具。
屢獲大獎的軟件開發平臺DevExpress Universal 2020年全新首發v20.1,最新版擁有眾多新產品和數十個具有高影響力的功能,可為桌面、Web和移動應用提供直觀的解決方案,全面解決各種使用場景問題。要體驗?點擊下載>>
我們的 允許通過配置某些用戶的導航權限為其隱藏導航項,可以用兩種模式配置這些權限。
從v16.2開始,可以將導航權限分配給各個導航項目。默認情況下,在使用向導創建的新項目中啟用此功能,要在從舊版本升級時啟用它,必須將SecurityStrategy.SupportNavigationPermissionsForTypes選項設置為false。 如果項目基于Entity Framework,則也有必要更新數據庫。
在v16.1和更早版本中,可以通過Type Permissions設置中提供的AllowNavigate選項將導航權限分配給特定的對象類型。 如果當前用戶沒有導航到該類型的權限,則從導航控件中刪除特定于相應類型的所有導航項目。 將舊項目升級到v16.2和更高版本時,默認情況下啟用此模式。要在使用向導創建的新項目中啟用它,請打開應用程序設計器,并將SecurityStrategy.SupportNavigationPermissionsForTypes屬性值更改為false。
本文將演示如何手動實現第一種模式,如果項目使用的XAF版本尚未實現導航權限功能,則本文中演示的方法很有用。
注意:如果使用此示例中提供的解決方案并升級到版本16.2,則此代碼可能會停止正常運行。 在這種情況下,請使用本文結尾處提供的建議。
如果您的XAF版本低于16.2,并且您需要授予單個導航項(例如,DashboardView或特定ListView模型)的權限,請使用下面介紹的解決方案擴展安全系統的功能。 在本文中,HiddenNavigationItems屬性允許您按其ID隱藏導航項,這將添加到角色類。
本文中顯示的覆蓋ShowNavigationItemController.SynchItemWithSecurity方法的方法也適用于與安全系統不直接相關的任務,您可以通過這種方式隱藏或自定義任何導航項目。
實現步驟:
在項目中執行了這些步驟之后,您將能夠將具有HiddenNavigationItems屬性的角色分配給所需的用戶,以限制他們對某些導航項的訪問。
注意:本文基于PermissionPolicyRole和PermissionPolicyUser類。在解決方案向導中選擇Allow/Deny權限策略時,安全系統將使用這些類。 如果您的項目是使用較早的XAF版本(16.1之前的版本)創建的,并且使用了SecuritySystemRole和SecuritySystemUser類,請在下面的組合框中更改版本號,以查看這些類的示例。
v16.2的升級說明:
升級到此版本后,此示例舊版本中使用的代碼可能會停止工作。 要解決此問題,請從示例的新版本中復制相關代碼,或者通過添加以下方法來修改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技術交流群2:775869749 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網