.Net "Заголовок WSS отсутствует в запросе. Не удается выполнить аутентификацию токена имени пользователя." ошибка

Я пытаюсь подключиться к Oracle Primavera через Oracle Web API. К сожалению, документации об этом не так много. Я добавил Primavera Web Service в свой проект.

Пока у меня есть следующий код:

    Dim authService As New AuthenticationService.AuthenticationService

    Dim loginObj As New AuthenticationService.Login()
    Dim loginResponse As AuthenticationService.LoginResponse

    authService.CookieContainer = New System.Net.CookieContainer()
    authService.Url = "http://" + hostName + ":" + port + "/p6ws/services/AuthenticationService"

    loginObj.UserName = userName
    loginObj.Password = passwd
    loginObj.DatabaseInstanceId = 1
    loginObj.DatabaseInstanceIdSpecified = True


    cookieContainer = authService.CookieContainer

    loginResponse = authService.Login(loginObj)
    Return loginResponse.Return

В authService.Login я получаю "Заголовок WSS отсутствует в запросе. Не удается выполнить аутентификацию токена имени пользователя".

В Primavera я установил модель аутентификации на cookie, но без результатов. Чего не хватает?

2 ответа

У меня была такая же ошибка: "Заголовок WSS отсутствует в запросе. Не удается выполнить аутентификацию токена имени пользователя". Я сделал: Администратор Primavera P6 - Конфигурация Primavera P6 - Веб-сервисы - Безопасность - Аутентификация - Режим - Cookies.

И мой код на Delphi начал работать.

var
  i: integer;
  projLoad: CreateProjects;
  projList: ProjectPortType;
  projFieldLoad: Array_Of_ProjectFieldType;
  _login: Login;
  loginReturn: LoginResponse;
  servicePort: AuthenticationServicePortType;
  projectServicePort: ProjectPortType;
  _status: Status;
begin
  SetLength(projFieldLoad, 6);
  projFieldLoad[0] := ProjectFieldType.ObjectId;
  projFieldLoad[1] := ProjectFieldType.Id;
  projFieldLoad[2] := ProjectFieldType.Name_;
  projFieldLoad[3] := ProjectFieldType.StartDate;
  projFieldLoad[4] := ProjectFieldType.FinishDate;
  projFieldLoad[5] := ProjectFieldType.Status;

  servicePort := GetAuthenticationServicePortType();
  _login := Login.Create;
  _login.UserName := 'admin';
  _login.Password := 'admin';
  loginReturn := servicePort.Login(_login);
  projectServicePort := GetProjectPortType();
  projLoad := projectServicePort.ReadProjects(projFieldLoad, '', '');
  for i := 0 to Length(projLoad) - 1 do
  begin
    ShowMessage(IntToStr(projLoad[i].ObjectId));
    ShowMessage(projLoad[i].Id);
    ShowMessage(projLoad[i].Name_);
    if Assigned(projLoad[i].StartDate) then
      ShowMessage(DateToStr(projLoad[i].StartDate.AsDateTime));
    if Assigned(projLoad[i].FinishDate) then
      ShowMessage(DateToStr(projLoad[i].FinishDate.AsDateTime));
    _status := projLoad[i].Status;
    if _status = Status.Planned then
      ShowMessage('Planned');
    if _status = Status.Active then
      ShowMessage('Active');
  end;

PS Веб-сервисы и программное обеспечение установлено на моем ноутбуке

В Primavera я установил модель аутентификации на cookie, но без результатов. Чего не хватает?

Перезапустите веб-сервис Primavera.

Другие вопросы по тегам