我们以前使用过不受支持的dll(Microsoft.Crm.Application.Components.Core
)来检查Dynamics中的当前用户是否具有特定实体的读取权限:
Microsoft.Crm.Security.User.HasPrivilege(Microsoft.Crm.Security.User.Current,
"myentityname, AccessRights.ReadAccess);
我只需要使用支持的SDK(和CrmService)来做同样的事情。
有人可以建议如何使用SDK完成此任务吗?
答案 0 :(得分:2)
试试这个:
<fetch mapping="logical" count="1000" version="1.0">
<entity name="privilege">
<attribute name="name" />
<filter>
<condition attribute="name" operator="eq" value="prvCreateINSERTYOURENTITYHERE" />
</filter>
<link-entity name="roleprivileges" from="privilegeid" to="privilegeid">
<link-entity name="role" from="roleid" to="roleid">
<link-entity name="systemuserroles" from="roleid" to="roleid">
<link-entity name="systemuser" from="systemuserid" to="systemuserid">
<filter>
<condition attribute="fullname" operator="eq" value="INSERT NAME HERE" />
</filter>
</link-entity>
</link-entity>
</link-entity>
</link-entity>
</entity>
</fetch>
答案 1 :(得分:1)
你可以像这样设计一个Fetch或QueryExpression:
请注意结果,因为您可能会从不同角色获得不同的权限深度,但如果您不关心深度,那么我认为这样做。