Веб-сервис EpiServer 6.0, проблемы аутентификации при использовании веб-сервиса

Я делаю консольные приложения, которые сообщат веб-сервису EpiServer добавить страницу. Моя проблема в том, что я не могу заставить аутентификацию работать. Я создал пользователя веб-сервиса в Epi backofice. Я могу войти в веб-сервис через браузер с моей учетной записью.

Пример кода из консольного приложения выглядит следующим образом.

var client2 = new ContentChannel.ContentChannelServiceSoapClient();
client2.ClientCredentials.UserName.UserName = "username";
client2.ClientCredentials.UserName.Password = "password";
client2.Open();

client2.ImportPage1(null, "Pagename", null, null, "sv", newGuid, parentGuid, "pagetype");
client2.Close();

Я получаю сообщение об ошибке:

System.Web.Services.Protocols.SoapException: серверу не удалось обработать запрос. ---> EPiServer.Core.EPiServerException: у пользователя нет права доступа 'Permission.WebServiceAccess' для доступа к веб-службам на удаленном сайте, для пользователя в EPiServer.WebServices.DataFactoryService.ValidateWebServiceAccess()
в EPiServer.WebServices.ContentChannelService.ValidateWebServiceAccess() в EPiServer.WebServices.ContentChannelService.ImportPage(String channelId, String pageName, String[] propertyKeys, String[] propertyValues, String PageName, StringDid_Gject_GringDid_WidIdgeDidGedingDid_Gject_Gject_GID), String_Imp, String Guiding, String Guiding, String Guiding, String Guiding, String Guid. Конец внутренней трассировки стека исключений ---

Я не знаю, нужно ли мне показывать, как я это сделал в файлах конфигурации, но если мне нужно добавить это, просто скажите мне. Если кто-нибудь знает, как идти отсюда, пожалуйста, ответьте. Заранее спасибо!

РЕДАКТИРОВАТЬ

Я получаю сообщение об ошибке с именем, я получаю приглашение для входа в систему, а не аутентификацию форм, я могу использовать некоторые методы webservice, такие как

ContentChannel.GetMaxRequestLength()

но я получаю эту ошибку всякий раз, когда я пытаюсь правильно использовать веб-сервис или вызывать ValidateWebServiceAccess ()

System.Web.Services.Protocols.SoapException: Server was unable to
process request. ---> EPiServer.Core.EPiServerException: The user does
not have the 'Permission.WebServiceAccess' access right to access web
services on the remote site, for user andreas

1 ответ

Решение

Прежде всего, перейдите по этой ссылке для установки и настройки веб-службы: http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Web-Services/

Затем перейдите в режим администратора EPIServer, нажмите вкладку "Конфигурация", затем "Разрешения для функций" в подгруппе "Безопасность" и нажмите "Изменить" рядом с "Разрешить пользователю действовать как пользователь веб-службы". Добавьте своего пользователя, нажмите Сохранить.

После этого откройте IE и откройте свой локальный URL http://<yourlocalsite>/WebServices/ContentChannelService.asmx

Убедитесь, что вы не перенаправлены на экран входа в систему, но получите всплывающее окно входа в систему / пароль браузера. Попробуйте войти с вашим пользователем веб-сервиса.

Также убедитесь, что это сделано в вашем коде:

При взаимодействии с EPiServer CMS с использованием мыльного клиента.NET установите для свойства SoapHttpClientProtocol.PreAuthenticate значение true, чтобы убедиться, что имя пользователя и пароль отправляются на сервер при каждом запросе.

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