Access the Security System in Code 在代码中访问安全系统

This lesson will guide you through using the static SecuritySystem class to check whether or not a user has particular permission. The SetTask Action will be accessible to users who have permission to modify DemoTask objects.

本课将指导您使用静态安全系统类检查用户是否具有特定权限。具有修改演示任务对象权限的用户可以访问 SetTask 操作。

Note 注意
Before proceeding, we recommend that you review the following lessons.
在继续之前,我们建议您复习以下课程。
  • Using the Security System
  • 使用安全系统
  • Add an Action with Option Selection
  • 添加具有选项选择的操作

 

using DevExpress.ExpressApp.Security;
//...
public partial class TaskActionsController : ViewController {
    // ...
    private void TaskActionsController_Activated(object sender, EventArgs e) {
        View.SelectionChanged += new EventHandler(View_SelectionChanged);
        UpdateSetTaskActionState();
    }
    void View_SelectionChanged(object sender, EventArgs e) {
        UpdateSetTaskActionState();
    }
    private void UpdateSetTaskActionState() {
        bool isGranted = true;
        foreach(object selectedObject in View.SelectedObjects) {
            bool isPriorityGranted = SecuritySystem.IsGranted(new PermissionRequest(ObjectSpace, 
            typeof(DemoTask), SecurityOperations.Write, selectedObject, "Priority"));
            bool isStatusGranted = SecuritySystem.IsGranted(new PermissionRequest(ObjectSpace, 
            typeof(DemoTask), SecurityOperations.Write, selectedObject, "Status"));
            if(!isPriorityGranted || !isStatusGranted) {
                isGranted = false;
            }
        }
        SetTaskAction.Enabled.SetItemValue("SecurityAllowance", isGranted);
    }
}

 

With the added code, the Set Task Action will be activated for users who have write permissions for the Priority and Status properties of the selected DemoTask objects.

使用添加的代码,将为具有所选 DemoTask 对象的"优先级"和"状态"属性的写入权限的用户激活"设置任务操作"。

  • Add a user who does not have permission to modify the DemoTask objects (see Using the Security System). Run the application as this new user. The Set Task Action will not be visible when you display the Demo Task List View.
  • 添加无权修改"演示任务"对象的用户(请参阅使用安全系统)。以此新用户身份运行应用程序。显示演示任务列表视图时,"设置任务"操作将不可见。

 

This is the last lesson of the Comprehensive Tutorial. To learn more about the main concepts for building business applications and extending XAF tools, refer to the Concepts section. If you need task-based help, take a look at the Task-Based Help section. To learn how to deploy XAF applications, review the Deployment Tutorial.

这是综合教程的最后一课。要了解有关构建业务应用程序和扩展 XAF 工具的主要概念的详细信息,请参阅概念部分。如果您需要基于任务的帮助,请查看基于任务的帮助部分。要了解如何部署 XAF 应用程序,请查看部署教程。

上一篇:跨平台UI开发框架DevExpress XAF正式发布ASP.NET Core Blazor Server UI


下一篇:XAF控制器(按钮)