我正在做一个控制台应用程序,它将告诉 EpiServer 网络服务添加一个页面。我的问题是我无法让认证工作。我在 Epi 后台创建了一个 web 服务用户。我可以使用我的帐户通过浏览器登录网络服务。
控制台应用程序的代码示例如下。
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:对于 EPiServer.WebServices.DataFactoryService.ValidateWebServiceAccess()的 EPiServer.WebServices.ContentChannelService的用户,用户没有访问远程站点上 Web 服务的“Permission.WebServiceAccess”访问权限.ValidateWebServiceAccess() at EPiServer.WebServices.ContentChannelService.ImportPage(String channelId, String pageName, String[] propertyKeys, String[] propertyValues, StringcultureName, Guid pageId, Guid parentPageId, String pageTypeName) --- 内部异常堆栈跟踪结束---
我不知道我是否需要在配置文件中展示我是如何完成的,但如果我应该添加它,请告诉我。如果有人知道如何从这里出发,请回答。提前致谢!
编辑
我收到名称错误,我收到登录提示,而不是表单身份验证,我可以使用一些 webservice-methods,例如
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