0

我正在做一个控制台应用程序,它将告诉 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
4

1 回答 1

1

首先,点击此链接设置和配置 Web 服务:http ://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Web-Services/

然后进入 EPIServer 管理模式,单击配置选项卡,然后单击安全子组中功能的权限,然后单击“允许用户充当 Web 服务用户”附近的编辑。添加您的用户,单击保存。

之后打开IE,然后打开你的本地网址http://<yourlocalsite>/WebServices/ContentChannelService.asmx

确保您没有被重定向到登录屏幕,而是接收浏览器登录/通过弹出窗口。尝试使用您的网络服务用户登录。

还要确保在您的代码中完成此操作:

使用 .NET soap 客户端与 EPiServer CMS 通信时,将属性 SoapHttpClientProtocol.PreAuthenticate 设置为 true 以确保在每次请求时将用户名和密码发送到服务器

于 2013-03-25T15:08:52.003 回答