Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SecLib::AccessCheckEx在Dynamics CRM 2011中失败_C#_Dynamics Crm 2011_Access Rights - Fatal编程技术网

C# SecLib::AccessCheckEx在Dynamics CRM 2011中失败

C# SecLib::AccessCheckEx在Dynamics CRM 2011中失败,c#,dynamics-crm-2011,access-rights,C#,Dynamics Crm 2011,Access Rights,我拥有Dynamics CRM 2011 onPrem的系统管理员权限。我使用下面的代码片段将记录共享给属于子业务部门的用户 GrantAccessRequest grantRequest = shareRecord(userId, recordId, entity); GrantAccessResponse grantResponse = (GrantAccessResponse)service.Execute(grantRequest); private GrantAccessReq

我拥有Dynamics CRM 2011 onPrem的系统管理员权限。我使用下面的代码片段将记录共享给属于子业务部门的用户

 GrantAccessRequest grantRequest = shareRecord(userId, recordId, entity);
 GrantAccessResponse grantResponse = (GrantAccessResponse)service.Execute(grantRequest);

 private GrantAccessRequest shareRecord(Guid userId, Guid recordId,string entity)
{
    GrantAccessRequest grantRequest = new GrantAccessRequest()
    {
        Target = new EntityReference(entity, recordId),
        PrincipalAccess = new PrincipalAccess() {
        Principal = new EntityReference("systemuser",userId),
        AccessMask = AccessRights.WriteAccess|AccessRights.ReadAccess|AccessRights.ShareAccess
        }
    };
    return grantRequest;
}
但我面临以下例外:

SecLib::AccessCheckEx failed. 
Returned hr = -2147187962, ObjectID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, 
OwnerId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,  
OwnerIdType: 8 and CallingUser: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. 
ObjectTypeCode: 10048, objectBusinessUnitId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, 
AccessRights: 262155 

我找不到任何办法来解决这个问题。我们将非常感谢您的帮助。

您能否再次检查错误消息中的呼叫者是否如您所说是系统管理员?您可以通过比较CallingUser的guid与您的SystemUser guid来实现这一点。它与子用户的guid相同,但与sys不同。Admin在这种情况下,“子用户”需要对ObjectTypeCode 10048的实体进行写入、读取和共享访问。该用户已经拥有这些权限,我只是与他们共享记录