.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.