Security Permissions Caching

Security permission caching is implemented in Security Adapters - classes used by the Security System to process and cache security permission requests. Each Security Adapter has the corresponding Security Adapter Provider class, which is used internally to register the adapter. XPO adapters and their providers are located in the DevExpress.ExpressApp.Security.Xpo.v17.1.dll assembly. The provider and adapter for the Entity Framework are available in the DevExpress.ExpressApp.Security.EF.v17.1.dll assembly. Both these assemblies (XPO and EF) contain the SecurityAdapterHelper class that exposes static methods that enable/disable Security Adapters. So, in your code, you do not need to access Security Adapters directly. This topic describes how to enable and customize caching using the SecurityAdapterHelper class.

Security Adapters中实现了权限系统缓存, 权限系统用于处理和缓存安全权限请求的类。每个安全适配器都有相应的安全适配器提供程序类, 它在内部用于注册适配器。适用于xpo的adapters在DevExpress. ExpressApp 安全. xpo. v17.1 .dll 程序集中。EF的Adapters在 DevExpress. ExpressApp. v17.1 .dll 程序集的安全。这些程序集 (xpo 和 ef) 都包含 SecurityAdapterHelper 类, 它公开了启用/禁用安全适配器的静态方法。因此, 在代码中, 不需要直接访问安全适配器。本主题介绍如何使用 SecurityAdapterHelper 类启用和自定义缓存。

 Enable Caching in Code

 

When creating a new XAF project, caching is enabled by the Solution Wizard. The wizard adds the following code line to the WinApplication.cs (WinApplication.vb) and WebApplication.cs (WebApplication.vb) files.

新建项目时,可以在创向导中选择这个选荐.也可以在代码中修改.(winapplication.cs/webapplication.cs)中:

using DevExpress.ExpressApp.Security;
// ...
SecurityAdapterHelper.Enable();

in the constructor of your platform-agnostic module located in the Module.cs (Module.vb) file;To enable or customize Security permissions caching in an existing application, use the same code, or use another overload of the Enable method that takes an ReloadPermissionStrategy enumeration value. You can call this static method from any place of your code, which is executed before a user is logged on, e.g.:

  • in the Main method of the WinForms application located in the Program.cs (Program.vb) file, before the WinApplication.Start call;
  • in the Application_Start method of the ASP.NET application located in the Global.asax.cs (Global.asax.vb) file, before the WebApplication.Start call.

The Solution Wizard uses the second and third locations.

若要在现有应用程序中启用或自定义安全权限缓存, 请使用相同的代码, 或使用采用 ReloadPermissionStrategy 枚举值的启用方法的另一个重载。您可以从代码的任何位置调用此静态方法 (在用户登录之前执行), 例如:
在您的平台不可知模块的构造器中, 位于 Module.cs (模块. vb) 文件中;
在 winforms 应用程序的 main 方法中, 位于 Program.cs (程序. vb) 文件中, 在 WinApplication 之前. 开始呼叫;
 

 Reload Permission Strategies

 

Security Adapters support various modes of reloading the security permissions. The available modes are listed in the ReloadPermissionStrategy enumeration. There is an overload of the SecurityAdapterHelper.Enable method that takes the reloadPermissionStrategy parameter - use it to change the mode. By default, the NoCache mode is used. Each Session (in XPO) or DBContext (in Entity Framework) operates with the most recent permissions loaded from the database in this mode. You can use the CacheOnFirstAccess mode instead. Permissions are loaded and cached when the corresponding secured data is accessed for the first time, cached permissions are used until the user is logged off in this mode. This mode allows you to significantly reduce the number of database requests when working with secured data.

安全适配器支持各种重新加载安全权限的模式。可用模式在 ReloadPermissionStrategy 枚举中列出。SecurityAdapterHelper 的重载. 启用采用 reloadPermissionStrategy 参数的方法-使用它来更改模式。默认情况下, 使用缓存模式。每个会话 (在 xpo 中) 或 DBContext (在实体框架中) 都使用此模式中从数据库加载的最新权限。您可以改用 CacheOnFirstAccess 模式。当第一次访问相应的安全数据时, 将加载和缓存权限, 直到用户在此模式下注销时才使用缓存的权限。此模式允许您在使用安全数据时显著减少数据库请求的数量。

Security Permissions Caching的更多相关文章

  1. CRM 2016 请求"System.Security.Permissions.FilelOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"类型的权限已失败.

    CRM 请求"System.Security.Permissions.FilelOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,Pu ...

  2. dotnetnuke 调用第三方dll出错 System.Security.Permissions.SecurityPermission,型的权限已失败。

    在dnn下调用第三方dll的微信sdk ,代码如下: WebClient wc = new WebClient();  wc.Encoding = encoding ?? Encoding.UTF8; ...

  3. java Permissions and Security Policy--官方文档

    3 Permissions and Security Policy 3.1 The Permission Classes The permission classes represent access ...

  4. [XAF] How to use the Allow/Deny permissions policy in the existing project

    https://www.devexpress.com/Support/Center/Question/Details/T418166 Clear [C#] using DevExpress.Persi ...

  5. Page Security

    参见开发文档 Overview This document describes how to build applications that grant selected access to indi ...

  6. Application Designer Security

    This wiki page covers how to manage and restrict Application Designer security through permission li ...

  7. (C#)为应用程式设定运行权限(System.Security类下的GenericIdentity,GenericPrincipal,PrincipalPermission)

    最近看书<编写高质量代码改善C#程序的157个建议>,知识点备忘: System.Security.Principal.GenericIdentity==>表示一般用户 System ...

  8. Android API Guides –System Permissions

    系统权限 声明: 本文由Gordon翻译 公布于www.dlvoice.com 欢迎转载,但请保留此声明 原文地址:http://developer.android.com/guide/topics/ ...

  9. File and Folder Permissions

    https://msdn.microsoft.com/en-us/library/bb727008.aspx On NTFS volumes, you can set security permiss ...

随机推荐

  1. 高级IO

    # 高级IO 特殊的IO操作,包括文件锁.系统V的流.信号驱动的I/O.多路转I/O(select和pull函数).readv和writev函数以及存贮映射I/O等概念和函数. ## 文件锁 文件锁是 ...

  2. angularjs-$location

    $location服务分析浏览器地址栏中的URL(基于window.location),让我们可以在应用中较为方便地使用URL里面的内容.在地址栏中更改URL,会响应到$location服务中,而在$ ...

  3. BZOJ 2763 飞行路线 BFS分层

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2763 题目大意: Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司 ...

  4. 1260. [CQOI2007]涂色【区间DP】

    Description 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续 ...

  5. 【洛谷】【堆】P1801 黑匣子_NOI导刊2010提高(06)

    [题目描述:] Black Box是一种原始的数据库.它可以储存一个整数数组,还有一个特别的变量i.最开始的时候Black Box是空的.而i等于0.这个Black Box要处理一串命令. 命令只有两 ...

  6. JS 兼容大全

    //获取浏览器可视区宽度 function getWidth() { if (window.innerWidth){ return window.innerWidth; } else{ if (doc ...

  7. Jmeter之断言

    Jmeter中的断言类似于LR中的检查点,是在请求的返回层面上加的一个判断机制.因为请求成功了,不代表结果就一定是对的,还要看返回(LR中亦如此,脚本回放没报错,不代表你的业务成功了,需要自己去相应的 ...

  8. KMP算法之从懵逼到入门

    写本文的目的: 1.加深自己的理解,以便自己日后复习 2.给看到此文的人一点启发 KMP算法看懂了就觉得特别简单,思路也好理解,但是看不懂之前,查各种资料看大佬的博客,都很懵逼...... 1.  算 ...

  9. Hadoop源码分析(mapreduce.lib.partition/reduce/output)

    Map的结果,会通过partition分发到Reducer上.Reducer做完Reduce操作后,通过OutputFormat,进行输出.以下我们就来分析參与这个过程的类.   Mapper的结果, ...

  10. socket编程小问题:地址已经被使用——Address already in use

    很多socket编程的初学者可能会遇到这样的问题:如果先ctrl+c结束服务器端程序的话,再次启动服务器就会出现Address already in use这个错误,或者你的程序在正常关闭服务器端so ...