Creatio development guide
Это документация Creatio версии 7.8.0. Мы рекомендуем использовать новую версию документации.

Аутентификация внешних запросов к веб-сервисам bpm'online

Glossary Item Box

Общие положения

Все внешние запросы к веб-сервисам bpm'online должны быть аутентифицированы.

В bpm'online поддерживается только Forms-аутентификация — способ аутентификации с помощью cookie. Для Forms-аутентификации в bpm'online предназначен веб-сервис AuthService.svc.

Сервис аутентификации AuthService.svc

Для прохождения аутентификации необходимо вызвать метод Login сервиса AuthService.svc. При этом строка запроса к сервису выглядит следующим образом:

http(s)://[Адрес приложения bpm'online]/ServiceModel/AuthService.svc/Login

Парметры запроса к сервису:

  • Метод: POST
  • ContentType: application/json

В теле запроса должны передаваться учетные данные пользователя bpm'online. Учетные данные передаются в формате JSON-объекта со следующими свойствами:

  • UserName: Имя пользователя bpm'online
  • UserPassword: Пароль пользователя bpm'online

При успешной аутентификации метод вернет аутентификационные cookies, которые необходимо сохранить на клиенте и в дальнейшем использовать в запросах к веб-сервисам bpm'online. 

Пример вызова AuthService.svc из клиентского кода

В примере приведена реализация метода на языке C#, который выполняет запрос к AuthService.svc для аутентификации пользователя. Учетные данные пользователя передаются в метод в качестве входящих параметров userName и userPassword. При успешной аутентификации метод возвращает true; иначе — false.

Алгоритм выполнения примера:

1) Добавьте в блок usings пространства имен System.IO и System.Net:

using System.IO;
using System.Net;

2) Создайте класс, в который добавьте следующие поля:

// Строка запроса к методу Login сервиса AuthService.svc.
// Замените "my.bpmonline.com" в строке на адрес вашего приложения bpm'online.
public const string authServiceUri = "http://my.bpmonline.com/ServiceModel/AuthService.svc/Login";
// Cookie аутентификации bpm'online.
public static CookieContainer AuthCookie = new CookieContainer();

3) Добавьте в созданный класс метод для аутентификации через сервис AuthService.svc:

// Метод выполняет аутентификацию пользователя .
// Параметры:
// userName - имя пользователя bpm'online,
// userPassword - пароль пользователя bpm'online.
public static bool TryLogin(string userName, string userPassword)
{
    // Создание экземпляра запроса к сервису аутентификации.
    var authRequest = HttpWebRequest.Create(authServiceUri) as HttpWebRequest;
    // Определение метода запроса.
    authRequest.Method = "POST";
    // Определение типа контента запроса.
    authRequest.ContentType = "application/json";

    // Включение использования cookie в запросе.
    authRequest.CookieContainer = AuthCookie;

    // Помещение в тело запроса учетной информации пользователя.
    using (var requesrStream = authRequest.GetRequestStream())
    {
        using (var writer = new StreamWriter(requesrStream))
        {
            writer.Write(@"{
                ""UserName"":""" + userName + @""",
                ""UserPassword"":""" + userPassword + @"""
            }");
        }
    }
    // Получение ответа от сервера. Если аутентификация проходит успешно, в свойство AuthCookie будут 
    // помещены cookie, которые могут быть использованы для последующих запросов.
    using (var response = (HttpWebResponse)authRequest.GetResponse())
    {
        if (AuthCookie.Count > 0)
        {
            return true;
        }
    }
    return false;
}
© Terrasoft 2002-2016.

Был ли данный материал полезен?

Как можно улучшить эту статью?