Доступ запрещен олицетворение текущего пользователя доступ к сетевой папке
попытка перечислить каталоги и файлы в определенной папке. Эта папка будет зависеть от текущего пользователя (страница.Пользователь), который входит в систему с помощью проверки подлинности Windows (NTLM) и извлекается из Active Directory (homedirectory
свойства).
Я использую пользователя домена для доступа к объявлению и получения местоположения папки, это работает нормально.
что не удается получить вложенные папки с помощью System.IO.DirectoryInfo.GetDirectories()
даже с олицетворением.
вот код, который я использую для олицетворения:
System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();
Я проверил, что олицетворяемый пользователь имеет доступ к папке.
из того, что я нашел до сих пор, кажется, что мне нужно либо настроить делегирование, либо аутентификацию Kerberos, это правда? Это единственные способы достичь этого? Разве подражания недостаточно?
1 ответов
олицетворение позволяет учетной записи службы веб-сайта олицетворять (притворяться) другого пользователя на машине. Поэтому запрос объявления, чтобы узнать, какие права у вас (или олицетворенного пользователя) разрешены.
запрос доступа к общему ресурсу UNC на другой машине-это запрос другой машины принять, что учетная запись службы веб-сайта действует от имени олицетворяемого пользователя. Это делегирование полномочий. Другая машина сама не проверяет учетные данные пользователей но делегирование этой проверки веб-серверу.
Если клиент подключает веб-сайт с еще одной машины (обычно для веб-серверов), то у вас есть "двойной прыжок" с клиента на веб-сервер на файловый сервер UNC.
Я бы предложил вам настроить Kerberos (через утилиту SetSPN) и посмотреть, как включить права делегирования для учетной записи службы веб-сайта (пользователи и компьютеры объявлений). если у вас есть проблемы с настройкой, я настоятельно рекомендую инструмент называется DeleConfig.