在访问coreservice Tridion时,用户NT AUTHORITY \ NETWORK SERVICE拒绝获取访问权限

时间:2013-01-16 07:01:20

标签: tridion tridion-2011 tridion-core-services

当我使用本地的tridion 2011核心服务编写自定义页面时,我使用了我的tridion凭据来访问核心服务Web服务。

现在,当我在当地完成所有工作:)时,我发布了我的网站,并简单地在Tridion CM服务器上做了以下事情。

  • 在IIS中,我创建了名为“CoreServices”的新应用程序网站
  • 使用Network USer
  • 使用应用程序池
  • 将我发布的网站复制到coreservice映射文件夹中。
  • 从网络配置中移除了我的凭据并实施了逻辑以阅读访问网站/自定义页面的用户详细信息
  • 现在,当我尝试访问核心服务网站时,我收到以下错误

    拒绝用户NT AUTHORITY \ NETWORK SERVICE。的访问权限 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

    异常详细信息: System.ServiceModel.FaultException`1 [[Tridion.ContentManager.CoreService.Client.CoreServiceFault,Tridion.ContentManager.CoreService.Client,Version = 6.1.0.996,Culture = neutral, PublicKeyToken = ddfc895746e5ee6b]]:拒绝用户NT AUTHORITY \ NETWORK SERVICE的访问。

请建议!!

编辑:我可以看到NT AUTHORITY \ NETWORK SERVICE已经添加到我的Tridion MMC中,请在屏幕截图下方显示:

enter image description here

2 个答案:

答案 0 :(得分:2)

此消息表示您的代码已成功调用核心服务,并且您的网络凭据已成功识别,但Tridion未授予访问权限。这里有两种可能的情况:

  1. 您希望Tridion使用NETWORK SERVICE身份作为受托人。在这种情况下,NETWORK SERVICE将作为用户添加。这将是一个不寻常的配置,因为您通常希望NETWORK SERVICE成为用于其他目的的模拟用户。
  2. 您希望作为网络服务连接到Tridion,但随后Tridion将作为不同的受托人。在此方案中,应将NETWORK SERVICE配置为管理管理单元中的模拟用户,并且必须按照John链接到(Tridion CoreService Authentication/Impersonation)的问题中所述调用Impersonate方法
  3. 这两种方法中的第二种几乎肯定是你想要的。我真的只是通过解释来描述第一个。

答案 1 :(得分:1)

尝试这个,如果它适合你,我没有尝试过,所以不确定它是否会起作用

var remoteAddress = new EndpointAddress(Settings.EndpointAddress);
ProxyClient = new CoreServiceClient(basicHttpBinding, remoteAddress);
ProxyClient.ClientCredentials.Windows.AllowNtlm = true;
ProxyClient.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
ProxyClient.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;