2014-09-25 59 views
2

使用CRM 2011/2013 Web服务创建外部MVC网站。必须根据对某个自定义实体的写入访问来隐藏/显示应用程序的某些部分。像如何使用CRM 2011/2013 sdk查询特定于实体(不含实体记录的ID)的特权?

http://mileyja.blogspot.de/2011/05/using-retrieveuserprivileges-requests.html

找到解决方案,在这里,RetrieveUserPrivilegesRequest需要systemuser id和实体记录id作为参数。该主题的解决方法使用.First()获取记录并检索权限。由于没有记录的可能性,解决方案不具有说服力。

作为RetrieveUserPrivilegesRequest的其他解决方案返回特权的Guid-s。这些可以从CRM实例更改为实例。角色也让事情变得复杂。有谁知道如果存在一个直接的方式 验证系统用户是否有写访问某个实体?

+0

我认为这是你在找什么:http://stackoverflow.com/questions/16038346/how-to-get-current-user-privileges-in-ms-dynamics-crm-在服务器端 – Piyush 2014-09-26 08:31:35

+0

谢谢,但我已经通过链接。它并没有真正的帮助。如前所述,它将Guid-s和这些更改系统返回给系统。我正在寻找更通用的方法。 – 2014-09-26 09:39:31

+0

用户拥有的一组特权被缓存在Web服务器上,您应该可以通过单条消息获取该特权,而无需再去查询其他任何内容以匹配它们。这种缓存是为什么你应该使用权限来测试用户的访问权限,而不是安全角色的成员资格(不缓存),所以你的方法是正确的。请注意,结果集应该给用户拥有的'最深'特权作为用户及其团队中所有角色的总和。这对检查你的用途是足够的。不幸的是,我不知道你需要使用的正确的代码位。 – AdamV 2014-09-26 14:46:29

回答

相关问题