当我使用本地的tridion 2011核心服务编写自定义页面时,我使用了我的tridion凭据来访问核心服务Web服务。
现在,当我在当地完成所有工作:)时,我发布了我的网站,并简单地在Tridion CM服务器上做了以下事情。
现在,当我尝试访问核心服务网站时,我收到以下错误
拒绝用户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中,请在屏幕截图下方显示:
答案 0 :(得分:2)
此消息表示您的代码已成功调用核心服务,并且您的网络凭据已成功识别,但Tridion未授予访问权限。这里有两种可能的情况:
这两种方法中的第二种几乎肯定是你想要的。我真的只是通过解释来描述第一个。
答案 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;