【发布时间】:2026-01-28 07:05:02
【问题描述】:
我开发了一个使用核心服务的 .Net 库。这个库是从工作流自动决策中的 VBScript 调用的,并使用核心服务来执行与该工作流过程相关的一些活动。
我能够使用我们为 Tridion 提供的服务帐户成功连接到该服务:
CoreServiceClient client = new CoreServiceReference.CoreServiceClient(
binding, endpoint);
client.ChannelFactory.Credentials.Windows.ClientCredential =
new NetworkCredential(serviceAccountUsername, serviceAccountPassword);
client.ChannelFactory.Credentials.Windows.AllowedImpersonationLevel =
System.Security.Principal.TokenImpersonationLevel.Delegation;
相关绑定属性设置如下:
binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
binding.Security.Transport.ClientCredentialType =
HttpClientCredentialType.Windows;
我遇到的问题是,当我调用核心服务时,我在 CMS 框中收到以下 Tridion Content Manager 错误:
用户 NT AUTHORITY\NETWORK SERVICE 的访问被拒绝。
如何配置我的客户端,以便使用 Tridion 服务帐户而不是 NT AUTHORITY\NETWORK SERVICE 执行操作?
【问题讨论】:
-
嘿安德鲁,我看到你接受了我的回答。很高兴听到您的代码可以工作。你能告诉我们你最终做了什么吗?
-
@FrankvanPuffelen 没问题,我切换到 SessionAwareCoreServiceClient 并使用了 WsHttpBinding。不幸的是,即使错误消息的位置在调用我的 .Net 库的自动化工作流活动中列为 VbScript 中的行,但它实际上是由附加到 ProcessInstance 的事件引起的。我更改了事件中使用的会话来模拟解决权限问题的服务帐户。
标签: wcf tridion tridion-2011