Подключение к репозиторию с прямой передачей учетных данных

Ниже приведен пример использования операции OpenMetabase для подключения к репозиторию. В запросе передаются учётные данные пользователя и идентификатор описания репозитория. В ответе приходит моникёр соединения с репозиторием.

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">
<OpenMetabase xmlns="http://www.fsight.ru/PP.SOM.Som">
<tDef xmlns="">
  <id>WAREHOUSE</id>
  </tDef>
<tCreds xmlns="">
<user>
  <id>User</id>
  </user>
  <pass>Password</pass>
  </tCreds>
  <tArg xmlns="" />
  </OpenMetabase>
  </s:Body>
  </s:Envelope>

SOAP-ответ:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<OpenMetabaseResult xmlns="http://www.fsight.ru/PP.SOM.Som" xmlns:q1="http://www.fsight.ru/PP.SOM.Som" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <id xmlns="">BDPFOFAFPAOIGOAEFNKGPFNIEBPKOEDEELBAEJINIBGNGHME!M</id>
  <sessKey xmlns="">1941</sessKey>
  <sessCookie xmlns="">C1</sessCookie>
  <version xmlns="">170</version>
  <defLocale xmlns="">0</defLocale>
  <driver xmlns="">8</driver>
<vcsInfo xmlns="">
  <isAvailable>1</isAvailable>
  </vcsInfo>
  </OpenMetabaseResult>
  </soapenv:Body>
  </soapenv:Envelope>

JSON-запрос:

{
"OpenMetabase": {
"tDef": {
"id": "WAREHOUSE"
},
"tCreds": {
"user": {
"id": "User"
},
"pass": "Password"
},
"tArg": ""
}
}

JSON-ответ:

{
"OpenMetabaseResult": {
"id": "BDPFOFAFPAOIGOAEFNKGPFNIEBPKOEDEELBAEJINIBGNGHME!M",
"sessKey": "1941",
"sessCookie": "C1",
"version": "170",
"defLocale": "0",
"driver": "8",
"vcsInfo": {
"isAvailable": "1"
}
}
}
public static OpenMetabaseResult MetabaseConnect(string mbDefinitionId, string userName, string password)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tOpen = new OpenMetabase()
{
tArg = new OpenMetabaseArg(),
tCreds = new UserCreds() //Учетные данные, с которыми производится подключение
{
user = new UserId() //Идентификатор пользователя репозитория
{
id = userName
},
pass = password
},
tDef = new MbDef() //Описание репозитория, к которому производится подключение
{
id = mbDefinitionId
}
};
//Подключение к репозиторию
var result = somClient.OpenMetabase(tOpen);
return result;
}

См. также:

OpenMetabase