EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:使用代码获取当前用户

应用程序的功能可能取决于当前登录的用户。因此,可能需要您获取用户名,用户ID或整个用户对象。为此,静态SecuritySystem类公开以下属性。

当前用户也可以在条件表达式中使用。在本主题中,列出了几种访问当前用户的流行方案。

在条件中访问当前用户

当要求您在过滤条件中使用当前用户时,请使用CurrentUserId 函数条件运算符

初始化对象所有者

要将当前用户引用分配给业务类的Owner属性,请在该类中支持IXafEntityObjectIObjectSpaceLink接口,并以以下方式实现IXafEntityObject.OnCreated方法。

void IXafEntityObject.OnCreated() {
    Owner = objectSpace.GetObjectByKey<PermissionPolicyUser>(SecuritySystem.CurrentUserId);
}
注意

IXafEntityObject接口描述中提供了完整的示例。

使用XPO时,还可以如下重写BaseObject.AfterConstruction方法。

public override void AfterConstruction() {
    base.AfterConstruction();
    if (SecuritySystem.CurrentUser != null) {
        Owner = Session.GetObjectByKey<PermissionPolicyUser>(SecuritySystem.CurrentUserId);
    }
}

根据对象所有者配置权限

要授予对当前用户拥有的对象的访问权限并禁止对其他对象的访问,请实现上面演示的Owner属性,并按以下方式配置安全权限。

  • 为要过滤的对象类型添加类型权限,并将其AllowRead属性设置为false
  • 将对象权限添加到该类型权限,将其AllowRead属性设置为true,并将Criteria属性设置为“ Owner.Oid = CurrentUserId()”。
相关文章

转载保留此链接,注明出处