Получение доступа запрещено для пользователя NT AUTHORITY\NETWORK SERVICE. При доступе к coreservice Tridion
Когда я писал пользовательскую страницу, используя основные сервисы tridion 2011 из моего локального региона, я использовал свои учетные данные tridion для доступа к веб-сервису основных сервисов.
Теперь, когда все сделано на моем локальном компьютере:), я опубликовал свой веб-сайт и просто выполнил следующие действия на сервере Tridion CM.
- В IIS я создал новый веб-сайт приложений с именем "CoreServices"
- Использовал пул приложений с помощью Network USer
- Скопировал мой опубликованный веб-сайт в папку сопоставления coreservice.
- Удалены мои учетные данные из веб-конфигурации и реализована логика для чтения сведений о пользователе, который обращается к веб-сайту / пользовательской странице.
Теперь, когда я пытаюсь получить доступ к сайту coreservice, я получаю сообщение об ошибке ниже
Доступ запрещен для пользователя NT AUTHORITY\NETWORK SERVICE. Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.ServiceModel.FaultException`1 [[Tridion.ContentManager.CoreService.Client.CoreServiceFault, Tridion.ContentManager.CoreService.Client, Версия =6.1.0.996, Культура = нейтральная, PublicKeyToken= доступ ddfc895746]: для PDF-6957465 Пользователь NT AUTHORITY\NETWORK SERVICE.
пожалуйста предложите!!
РЕДАКТИРОВАТЬ: Я вижу, что NT AUTHORITY \ NETWORK SERVICE уже добавлен в мою Tridion MMC, пожалуйста, ниже скриншот:
3 ответа
Попробуйте это, если это работает для вас, я не пробовал это, поэтому не уверен, что это будет работать
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;
Это сообщение указывает, что основной код успешно вызывается вашим кодом, и что ваши сетевые учетные данные успешно распознаются, но Tridion не предоставляет доступ. Здесь есть два возможных сценария:
- Вы хотите, чтобы Tridion использовал идентификатор NETWORK SERVICE в качестве Доверительного управляющего, под которым он действует. В этом случае NETWORK SERVICE будет добавлен как пользователь. Это будет необычная конфигурация, так как вы обычно хотите, чтобы NETWORK SERVICE был пользователем подражания для других целей.
- Вы хотите подключиться к Tridion в качестве NETWORK SERVICE, но затем Tridion будет действовать в качестве другого доверенного лица. В этом сценарии NETWORK SERVICE должен быть настроен как пользователь олицетворения в оснастке управления, и вы должны вызвать метод Impersonate, как описано в вопросе, связанном с Джоном ( Tridion CoreService Authentication / Impersonation)
Второй из этих двух подходов - почти наверняка то, что вы хотите. Я действительно только описал первое в качестве объяснения.
Здесь ответили:
Аутентификация / Олицетворение Tridion CoreService
Пожалуйста, подтвердите, если это не отвечает на ваш вопрос, и подумайте о закрытии, если это не требуется.
Спасибо
Джон