当前页面的脚本发生错误没有权限 详解ABP框架的参数有效性验证和权限验证

09/11 15:10:29 来源网站:辅助卡盟网

ICustomValidate 接口声明了一个可被实现的AddValidationErrors方法。这里我们有一个叫做 SendEmailToAssignedPerson 的属性。如果该属性是真当前页面的脚本发生错误没有权限,AssignedPersonId 属性会被检验是否有效,否则该属性可以为空。如果有验证错误辅助卡盟,我们必须添加把这些验证结果添加到结果集合中。(就是将ValidationResult 添加到results)

设置缺省值

在检验数据有效性后,我们需要执行一个额外的操作来整理DTO参数。ABP定义了一个IShouldNormalize接口,这个接口声明了一个 Normalize的方法。如果你实现了这个接口,在检验数据有效性后当前页面的脚本发生错误没有权限,Normalize方法会被调用。假设我们的DTO需要一个排序方向的数据。如果这个Sorting属性没有被提供数据,那么在Normalize我们可以给Sorting设置一个缺省值。

public class GetTasksInput : IInputDto, IShouldNormalize
{
  public string Sorting { get; set; }
  public void Normalize()
  {
    if (string.IsNullOrWhiteSpace(Sorting))
    {
      Sorting = "Name ASC";
    }
  }
}

当前页的脚本发生错误_当前页面的脚本发生错误没有权限_当前脚本发生错误 行18

权限验证

几乎所有的企业级应用程序都会有不同级别的权限验证。权限验证是用于检查用户是否允许某些指定操作。Abp有基础设施让你来实现权限验证。

注意:关于IPermissionChecker接口

Abp权限系统使用IPermissionChecker去检查授权。同时你可以根据需要实现你自己的方式,在module-zero项目中已经完整实现了。如果IPermissionChecker没有被实现,NullPermissionChecker会被使用于授权所有权限给每个人。

定义权限

在使用验证权限前,我们需要为每一个操作定义唯一的权限。Abp的设计是基于模块化,所以不同的模块可以有不同的权限。为了定义权限,一个模块应该创建AuthorizationProvider的派生类。MyAuthorizationProvider继承自AuthorizationProvider,换句话说就是AuthorizationProvider派生出MyAuthorizationProvider。例子如下:

public class MyAuthorizationProvider : AuthorizationProvider
{
  public override void SetPermissions(IPermissionDefinitionContext context)
  {
    var administration = context.CreatePermission("Administration");
    var userManagement = administration.CreateChildPermission("Administration.UserManagement");
    userManagement.CreateChildPermission("Administration.UserManagement.CreateUser");
    var roleManagement = administration.CreateChildPermission("Administration.RoleManagement");
  }
}

SQL Error: select * from ***_ecms_game where title like '%当前页面的脚本发生错误没有权限 详解ABP框架的参数有效性验证和权限验证%' or INSTR('当前页面的脚本发生错误没有权限 详解ABP框架的参数有效性验证和权限验证',title)>0 order by newstime desc limit 10

游戏推荐

更多>
    SQL Error: select * from ***_ecms_game where titlepic<>'' order by newstime desc limit 6