.net Microsoft Dynamics 4.0 SDK检查用户是否具有权限
我们以前使用不受支持的dll(.net Microsoft Dynamics 4.0 SDK检查用户是否具有权限,.net,dynamics-crm,dynamics-crm-4,.net,Dynamics Crm,Dynamics Crm 4,我们以前使用不受支持的dll(Microsoft.Crm.Application.Components.Core)检查Dynamics中的当前用户是否对特定实体具有读取权限: Microsoft.Crm.Security.User.HasPrivilege(Microsoft.Crm.Security.User.Current, "myentityname, AccessRights.ReadAccess); 我只需要使用支持的SDK(和CrmService)来做同样的事情 有人可以建
Microsoft.Crm.Application.Components.Core
)检查Dynamics中的当前用户是否对特定实体具有读取权限:
Microsoft.Crm.Security.User.HasPrivilege(Microsoft.Crm.Security.User.Current,
"myentityname, AccessRights.ReadAccess);
我只需要使用支持的SDK(和CrmService)来做同样的事情
有人可以建议如何使用SDK实现这一点吗?您可能可以这样设计一个Fetch或QueryExpression:
请注意结果,因为您可能会从不同的角色获得不同的权限深度,但是如果您不关心深度,那么我认为就可以了。您可能可以设计如下的获取或查询表达式:
<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>
试试这个:
<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>
谢谢……不过我不知道怎么做。你能告诉我正确的方向吗?谢谢…不过我不知道怎么做。你能给我指一下正确的方向吗?按全名搜索不是个好主意,最好用GUID来代替……但除此之外,这是一个简洁、快速的解决方案。谢谢Alberto。按全名搜索不是一个好主意,最好使用GUID来代替……但除此之外,这是一个简洁、快速的解决方案。谢谢Alberto。我已经找到了使用bare SDK完成此任务的方法:我已经找到了使用bare SDK完成此任务的方法: