DevExpress Universal Subscription拥有.NET开发需要的所有平台控件,包含600多个UI控件、 表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。
DevExpress Universal Subscription拥有.NET开发需要的所有平台控件,包含600多个UI控件、 表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。
系统背景
- 平台:Frameworks (XAF & XPO)
- 产品:DeXpressApp Framework
我们的 Security System 允许通过配置某些用户的导航权限为其隐藏导航项,可以用两种模式配置这些权限。
从v16.2开始,可以将导航权限分配给各个导航项目。默认情况下,在使用向导创建的新项目中启用此功能,要在从旧版本升级时启用它,必须将SecurityStrategy.SupportNavigationPermissionsForTypes选项设置为false。 如果项目基于Entity Framework,则也有必要更新数据库。
在v16.1和更早版本中,可以通过Type Permissions设置中提供的AllowNavigate选项将导航权限分配给特定的对象类型。 如果当前用户没有导航到该类型的权限,则从导航控件中删除特定于相应类型的所有导航项目。 将旧项目升级到v16.2和更高版本时,默认情况下启用此模式。要在使用向导创建的新项目中启用它,请打开应用程序设计器,并将SecurityStrategy.SupportNavigationPermissionsForTypes属性值更改为false。
实现步骤:
- 实现自定义权限类型NavigationItemPermission,可用于通过其ID检查特定导航项目的访问权限。
- 实现一个自定义权限请求 – NavigationItemPermissionRequest – 该请求将发送以检查当前用户是否有权访问某个导航项目。
- 实现一个自定义权限请求处理器NavigationItemPermissionRequestProcessor,它将确定当前用户是否对接收到的权限请求具有权限。
- 使用HiddenNavigationItems属性实现自定义角色。 使用GetPermissions方法对其进行扩展,以基于HiddenNavigationItems属性的值创建NavigationPermission实例。
- 在应用程序设计器安全系统的RoleType属性中指定自定义角色。
- 通过处理Program.cs和Global.asax.cs文件中的SecurityStrategy.CustomizeRequestProcessors事件,在应用程序中注册权限请求处理器。
- 实现ShowNavigationItemController的后代 – CustomShowNavigationItemController – 并重写其SynchItemWithSecurity方法以停用CustomSecurityRole.HiddenNavigationItems属性禁止的导航项。
在项目中执行了这些步骤之后,您将能够将具有HiddenNavigationItems属性的角色分配给所需的用户,以限制他们对某些导航项的访问。
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 BooleanMyBase.SyncItemsWithSecurity(items)Return TrueEnd Function
DevExpress技术交流群2:775869749 欢迎一起进群讨论

标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!