Получение информации о профилях пользователей

Ниже приведен пример использования операции GetMbSec для получения информации о профиле текущего пользователя. В запросе передается моникёр соединения с репозиторием. В ответе приходит информация об адресах электронной почты и дополнительных свойствах пользователя, которые сохранены в профиле.

SOAP-запрос:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetMbSec xmlns="http://www.prognoz.ru/PP.SOM.Som">
<tMbSec xmlns=" ">
  <id>S1!M</id>
  </tMbSec>
<tArg xmlns=" ">
<pattern>
  <profiles>Get</profiles>
<profilesFilter>
  <current>true</current>
  </profilesFilter>
<profile>
  <subject>true</subject>
  <data>true</data>
  </profile>
  </pattern>
  </tArg>
  </GetMbSec>
  </s:Body>
  </s:Envelope>

SOAP-ответ:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<GetMbSecResult xmlns="http://www.prognoz.ru/PP.SOM.Som" xmlns:q1="http://www.prognoz.ru/PP.SOM.Som" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id xmlns=" ">
  <id>S1!M</id>
  </id>
<meta xmlns=" ">
<profiles>
<its>
<it>
  <k>0</k>
  <id>PS-1-1</id>
  <n>ADMIN</n>
  <vis>1</vis>
<sid>
  <sid>PS-1-1</sid>
  </sid>
<subject>
  <k>2147483649</k>
  <id>ADMIN</id>
  <vis>1</vis>
  <type>User</type>
<sid>
  <sid>PS-1-1</sid>
  <type>User</type>
  </sid>
  </subject>
<emails>
<its>
<it>
  <name>Рабочий</name>
  <email>NewWork@example.ru</email>
  </it>
<it>
  <name>Мобильный</name>
  <email>NewMobile@example.ru</email>
  </it>
<it>
  <name>Персональный</name>
  <email>NewHome@example.ru</email>
  </it>
  </its>
<def>
  <name>Рабочий</name>
  <email>NewWork@example.ru</email>
  </def>
<work>
  <name>Рабочий</name>
  <email>NewWork@example.ru</email>
  </work>
<personal>
  <name>Персональный</name>
  <email>NewHome@example.ru</email>
  </personal>
<mobile>
  <name>Мобильный</name>
  <email>NewMobile@example.ru</email>
  </mobile>
  </emails>
<props>
<its>
<it>
  <k>1</k>
  <id>Location</id>
  <value>Home</value>
  <dt>1</dt>
  </it>
  </its>
  </props>
  </it>
  </its>
  </profiles>
  <bisearchEnable>Disable</bisearchEnable>
  </meta>
  </GetMbSecResult>
  </soapenv:Body>
  </soapenv:Envelope>

JSON-запрос:

{
"GetMbSec" :
{
"tMbSec" :
{
"id" : "S1!M"
},
"tArg" :
{
"pattern" :
{
"profiles" : "Get",
"profilesFilter" :
{
"current" : "true"
},
"profile" :
{
"subject" : "true",
"data" : "true"
}
}
}
}
}

JSON-ответ:

{
"GetMbSecResult" :
{
"id" :
{
"id" : "S1!M"
},
"meta" :
{
"profiles" :
{
"its" :
{
"it" :
[
{
"k" : "0",
"id" : "PS-1-1",
"n" : "ADMIN",
"vis" : "1",
"sid" :
{
"sid" : "PS-1-1"
},
"subject" :
{
"k" : "2147483649",
"id" : "ADMIN",
"vis" : "1",
"type" : "User",
"sid" :
{
"sid" : "PS-1-1",
"type" : "User"
}
},
"emails" :
{
"its" :
{
"it" :
[
{
"name" : "Рабочий",
"email" : "NewWork@example.ru"
},
{
"name" : "Мобильный",
"email" : "NewMobile@example.ru"
},
{
"name" : "Персональный",
"email" : "NewHome@example.ru"
}
]
},
"def" :
{
"name" : "Рабочий",
"email" : "NewWork@example.ru"
},
"work" :
{
"name" : "Рабочий",
"email" : "NewWork@example.ru"
},
"personal" :
{
"name" : "Персональный",
"email" : "NewHome@example.ru"
},
"mobile" :
{
"name" : "Мобильный",
"email" : "NewMobile@example.ru"
}
},
"props" :
{
"its" :
{
"it" :
[
{
"k" : "1",
"id" : "Location",
"value" : "Home",
"dt" : "1"
}
]
}
}
}
]
}
},
"bisearchEnable" : "Disable"
}
}
}
public static GetMbSecResult GetUserProfiles(string mb)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var getMbSec = new GetMbSec()
{
tArg = new GetMbSecArg()
{
pattern = new MbSecMdPattern()
{
//Параметры извлечения информации о профиле пользователя
profiles = ListOperation.Get,
profile = new MbSecProfilePattern()
{
subject = true
},
profilesFilter = new MbSecProfilesFilter()
{
current = true
}
}
},
tMbSec = new MbId() { id = mb }
};
//Получение информации о профилях пользователей
var result = somClient.GetMbSec(getMbSec);
return result;
}

См. также:

GetMbSec: Операция