IAzClientContext.AccessCheck
позволяет передавать массив идентификаторов операций.
Я делаю что-то вроде этого:
public Tuple<bool, List<int>> AccessCheck(string auditObjectName, List<string> scopeNames, List<int> operations, SortedList<string, string> parameters)
{
object[] operationsArray = operations.ConvertAll(i => (object)i).ToArray();
...
object o = _context.AccessCheck(auditObjectName, (object)scopeNameArray, (object)operationsArray, (object)parameterNames, (object)parameterValues, null, null, null);
object[] oArray = (object[])o;
int[] authorizedOperationsArray = Array.ConvertAll(oArray, obj => (int)obj);
...
Я не проверял, сколько он будет обрабатыватьи я обычно делаю только по одному за раз.Но теоретически это будет работать.
Я также не пытался делать это с несколькими областями (мне пришлось использовать более старую схему AzMan 1.0, которая не поддерживала несколько областей в AccessCheck).