可以使用角色模板的ID來標識系統管理員角色。對於內置安全角色,Dynamics CRM系統都共享相同的Guid
,因此您可以簡單地對您的語言不可知的查詢進行硬編碼。
這裏是一個代碼示例。 (在這個例子中_service應該是實現接口的一個對象。)
private static readonly Guid AdminRoleTemplateId = new Guid("627090FF-40A3-4053-8790-584EDC5BE201");
public bool HavingAdminRole(Guid systemUserId)
{
var query = new QueryExpression("role");
query.Criteria.AddCondition("roletemplateid", ConditionOperator.Equal, AdminRoleTemplateId);
var link = query.AddLink("systemuserroles", "roleid", "roleid");
link.LinkCriteria.AddCondition("systemuserid", ConditionOperator.Equal, systemUserId);
return _service.RetrieveMultiple(query).Entities.Count > 0;
}
謝謝Henk,那對我有幫助! – anton