Ektron的Wcf服务

时间:2013-07-05 09:31:36

标签: ektron

我正在使用Ektron的WCF服务(rrot / Workarea / Services)。 当我尝试使用以下代码在客户端中使用ContentService.svc服务时,

   ContentManagerClient cClient = new ContentManagerClient();
   UpdatedContentService.ContentData data = new UpdatedContentService.ContentData();
   data.m_strTitle = "test";
   data.m_strHtml = "test";
   data.m_intFolderId = 72;
   data.m_intUserId = 1;
   cClient.Add(data);

我收到以下错误'当前用户无权执行此请求'。 如何验证ektron用户从客户端执行此操作?

1 个答案:

答案 0 :(得分:0)

您在ektron开发论坛上收到的答案非常好。 (对于有相同问题的任何人的事先讨论:http://developer.ektron.com/forums/?v=t&t=1280

您需要使用Auth服务,而不是内容服务。这可以通过以下步骤完成:

  1. 为Web服务创建代理对象: 针对您的Web服务地址运行.Net工具wsdl.exe,例如http://localhost:/Workarea/webservices/AuthService.asmx
  2. 通过运行“csc / t:library AuthenticationService.cs”编译成DLL: 添加DLL作为DLL或控制台应用程序的引用 将DLL复制到项目中的Lib文件夹
  3. 添加DLL作为对DLL或控制台应用程序的引用 将DLL复制到项目中的Lib文件夹 右键单击“添加引用”并浏览到您创建的代理DLL。 添加System.Web.Services作为对DLL或控制台应用程序的引用
  4. 从您的应用中调用代理代码:

    AuthenticationService auth = new AuthenticationService();
    IAsyncResult response = auth.BeginisValidUser(用户名,密码等等);

  5. 可以在以下位置找到这方面的工作代码示例: http://developer.ektron.com/Templates/CodeLibraryDetail.aspx?id=1036&blogid=116

    此示例改编自引入内容服务的VooDoo工程示例: http://ektroneering.blogspot.com/2011/01/accessing-ektron-from-dll-or-console.html