0
A
回答
0
我正在使用T-SQL來解決此問題。
我寫一個類來讓我給一個實體的名稱與所有角色的權限讀取
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace xxx.xxx.xxxx.xxx.xxx
{
public class xxx
{
public static String GetRolesForEntityTSQL(string Entity) {
return String.Format(@"
DECLARE
@EntityName VARCHAR(200) = '{0}',
@Action VARCHAR(200) = 'Read'
DECLARE @PrivName VARCHAR(500) = 'prv' + @Action + @EntityName
SELECT rb.Name, pb.Name, rb.RoleId, rb.ParentRoleId, rb.ParentRootRoleId
FROM RolePrivilegesBase p
INNER JOIN PrivilegeBase pb
ON p.PrivilegeId = pb.PrivilegeId
INNER JOIN RoleBase rb
ON rb.RoleId = p.RoleId
WHERE
pb.Name = @PrivName
", Entity);
}
}
}
0
我在XML源文件只是因爲我已經做了客戶端,登記入住,但我相信你會能夠使用Xml構建QueryExpression和C#作爲示例。
var requestXml = "<s:envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>" +
" <s:body>" +
" <retrievemultiple xmlns:i='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://schemas.microsoft.com/xrm/2011/Contracts/Services'>" +
" <query i:type='a:QueryExpression' xmlns:a='http://schemas.microsoft.com/xrm/2011/Contracts'>" +
" <a:columnset>" +
" <a:allcolumns>false</a:allcolumns>" +
" <a:columns xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>" +
" </a:columns></a:columnset>" +
" <a:criteria>" +
" <a:conditions>" +
" <a:conditionexpression>" +
" <a:attributename>name</a:attributename>" +
" <a:operator>Equal</a:operator>" +
" <a:values xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>" +
" <b:anytype i:type='c:string' xmlns:c='http://www.w3.org/2001/XMLSchema'>" + privilegeName + "</b:anytype>" +
" </a:values>" +
" </a:conditionexpression>" +
" </a:conditions>" +
" <a:filteroperator>And</a:filteroperator>" +
" <a:filters>" +
" <a:isquickfindfilter>false</a:isquickfindfilter>" +
" </a:filters></a:criteria>" +
" <a:distinct>false</a:distinct>" +
" <a:entityname>privilege</a:entityname>" +
" <a:linkentities>" +
" <a:linkentity>" +
" <a:columns>" +
" <a:allcolumns>false</a:allcolumns>" +
" <a:columns xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>" +
" </a:columns>" +
" <a:entityalias i:nil='true'>" +
" <a:joinoperator>Inner</a:joinoperator>" +
" <a:linkcriteria>" +
" <a:conditions>" +
" <a:filteroperator>And</a:filteroperator>" +
" <a:filters>" +
" <a:isquickfindfilter>false</a:isquickfindfilter>" +
" </a:filters></a:conditions></a:linkcriteria>" +
" <a:linkentities>" +
" <a:linkentity>" +
" <a:columns>" +
" <a:allcolumns>false</a:allcolumns>" +
" <a:columns xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>" +
" </a:columns>" +
" <a:entityalias i:nil="true">" +
" <a:joinoperator>Inner</a:joinoperator>" +
" <a:linkcriteria>" +
" <a:conditions>" +
" <a:filteroperator>And</a:filteroperator>" +
" <a:filters>" +
" <a:isquickfindfilter>false</a:isquickfindfilter>" +
" </a:filters></a:conditions></a:linkcriteria>" +
" <a:linkentities>" +
" <a:linkentity>" +
" <a:columns>" +
" <a:allcolumns>false</a:allcolumns>" +
" <a:columns xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>" +
" </a:columns>" +
" <a:entityalias i:nil="true">" +
" <a:joinoperator>Inner</a:joinoperator>" +
" <a:linkcriteria>" +
" <a:conditions>" +
" <a:conditionexpression>" +
" <a:attributename>systemuserid</a:attributename>" +
" <a:operator>EqualUserId</a:operator>" +
" <a:values xmlns:b='http://schemas.microsoft.com/2003/10/Serialization/Arrays'>" +
" </a:values></a:conditionexpression>" +
" </a:conditions>" +
" <a:filteroperator>And</a:filteroperator>" +
" <a:filters>" +
" <a:isquickfindfilter>false</a:isquickfindfilter>" +
" </a:filters></a:linkcriteria>" +
" <a:linkentities>" +
" <a:linkfromattributename>roleid</a:linkfromattributename>" +
" <a:linkfromentityname>privilege</a:linkfromentityname>" +
" <a:linktoattributename>roleid</a:linktoattributename>" +
" <a:linktoentityname>systemuserroles</a:linktoentityname>" +
" </a:linkentities></a:entityalias></a:columns></a:linkentity>" +
" </a:linkentities>" +
" <a:linkfromattributename>roleid</a:linkfromattributename>" +
" <a:linkfromentityname>privilege</a:linkfromentityname>" +
" <a:linktoattributename>parentrootroleid</a:linktoattributename>" +
" <a:linktoentityname>role</a:linktoentityname>" +
" </a:entityalias></a:columns></a:linkentity>" +
" </a:linkentities>" +
" <a:linkfromattributename>privilegeid</a:linkfromattributename>" +
" <a:linkfromentityname>privilege</a:linkfromentityname>" +
" <a:linktoattributename>privilegeid</a:linktoattributename>" +
" <a:linktoentityname>roleprivileges</a:linktoentityname>" +
" </a:entityalias></a:columns></a:linkentity>" +
" </a:linkentities>" +
" <a:orders>" +
" <a:pageinfo>" +
" <a:count>0</a:count>" +
" <a:pagenumber>0</a:pagenumber>" +
" <a:pagingcookie i:nil="true">" +
" <a:returntotalrecordcount>false</a:returntotalrecordcount>" +
" </a:pagingcookie></a:pageinfo>" +
" <a:nolock>false</a:nolock>" +
" </a:orders></query>" +
" </retrievemultiple>" +
" </s:body>" +
"</s:envelope>";
相關問題
- 1. 如何獲取給定實體的所有CRM 2011相關實體
- 2. 在multimap中,如何獲得與給定值關聯的密鑰?
- 3. 如何獲得與給定KeySym關聯的KeyCode?
- 4. 實體關係建模:如何實現實體「角色」?
- 5. Dynamics CRM 2011 - 如何關聯兩個不同的實體
- 6. 如何獲得適合給定KeyDown事件的角色?
- 7. 如何獲得與IWpfTextView關聯的EnvDTE.Document?
- 8. 在原則中獲取關聯實體給一個實體,但是與規則
- 9. Zend_ACL如何獲得角色?
- 10. 如何獲得角色直到達到特定角色?
- 11. 我如何路由URL添加關聯實體與asp.net的WebAPI
- 12. 實體框架:獲取實體相關聯與DbCommandTree
- 13. 如何獲得給定實體的頁碼
- 14. 如何實現多個角色的關聯?
- 15. 將角色與正在運行的AWS實例關聯
- 16. 通過與boto關聯的IAM角色過濾ec2實例
- 17. 找到參與0相關「角色」的實體。 1「角色」,預計
- 18. 實體框架 - 我如何使用實體關聯?
- 19. 將用戶與角色關聯?
- 20. 如何使用CRM API獲取與實體記錄相關的文檔列表?
- 21. 我如何獲得給定名稱firebase的顏色
- 22. 如何獲得沒有特定相關實體的所有實體?
- 23. 確定Web角色實例的關聯w3wp進程
- 24. 獲取與用戶池關聯的角色 - AWS Cognito
- 25. 關聯實體
- 26. 「關聯,取消關聯」實體的插件不再適用於CRM 2013
- 27. 如何處理複合關鍵實體與Doctrine2的關聯?
- 28. 我如何獲得所有FB圖形ID與域關聯?
- 29. 如何從asp.net FormsAuthentication對象獲取與用戶關聯的角色?
- 30. 如何與實體 - 用戶與多個角色
這是否適用於CRM Online? :) –
不要這麼認爲,因爲數據庫不是直接暴露在本機上 –
這是一個諷刺。顯然這是行不通的。如果您希望以正確和受支持的方式使其工作,則可以使用FetchXml重寫相同的查詢。 –