Я делаю консольные приложения, которые сообщают веб-службе EpiServer о добавлении страницы. Моя проблема в том, что я не могу заставить работать аутентификацию. Я создал пользователя веб-сервиса в бэк-офисе Epi. Я могу войти в веб-сервис через браузер со своей учетной записью.
Пример кода из консольного приложения выглядит следующим образом.
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() at EPiServer.WebServices.ContentChannelService.ImportPage(String channelId, String pageName, String[] propertyKeys, String[] propertyValues, String CultureName, Guid pageId, Guid parentPageId, String pageTypeName) --- Конец внутреннего трассировка стека исключений ---
Я не знаю, нужно ли мне показывать, как я это сделал, в файлах конфигурации, но если я должен добавить это, просто скажите мне. Если кто-нибудь знает, как пройти отсюда, пожалуйста, ответьте. Заранее спасибо!
РЕДАКТИРОВАТЬ
Я получаю сообщение об ошибке с именем, я получаю приглашение для входа в систему, а не аутентификацию форм, я могу использовать некоторые методы веб-сервиса, такие как
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