Как проверить, какой пользователь пытается получить доступ к файлу? - PullRequest
0 голосов
/ 29 ноября 2010

У меня есть веб-сайт ASP.NET, который использует файловый поток для чтения изображения PDF с общего ресурса UNC на удаленном сервере 2003.

Я пытаюсь загрузить файл на сайт (который простовстраивает средство просмотра PDF на сайт), но когда я отлаживаю код, при попытке доступа к файлу выдается исключение безопасности.

доступ к пути _________ запрещен.

Итак, я предоставил доступ к каталогу пути UNC пользователю ASPNET.Я также предоставил доступ пользователю, который указан для анонимного доступа на самом сайте в IIS.Это не сработало.

Однако, когда я предоставляю «всем» доступ, и файл открывается.

Итак, мне нужно знать, ВОЗ пытается получить доступ к файлу.Предполагается, что пользователь ASPNET или анонимный пользователь настроены в IIS.ни один из которых не получает доступ.

Я пытался настроить аудит файлов в окне Server 2003, но он не регистрирует ошибку в журнале событий безопасности при получении исключения об отказе в доступе.

Ответы [ 2 ]

1 голос
/ 29 ноября 2010

System.Security.Principal.WindowsIdentity.GetCurrent().Name даст вам текущее имя пользователя, вы можете вывести этого пользователя на экран или в файл журнала, чтобы проверить, кто он.

Пользователь ASPNET - это учетная запись Windows, в которой ASP.NETработает под, это, вероятно, не пользователь, который будет иметь доступ к файлу.Возможно, вам придется явно предоставить привилегии анонимному пользователю для доступа к сети (возможно, IUSR_MACHINENAME).

РЕДАКТИРОВАТЬ:

Поскольку вы включили анонимный доступ в IIS, вы можете заставить свое приложение использоватьанонимный доступ путем изменения вашего web.config для использования проверки подлинности с помощью форм.Искать '

<authentication mode="Forms" /> 

или

<authentication mode="Forms">
  <forms loginUrl="~/Login.aspx" timeout="2880"/>
</authentication>
0 голосов
/ 29 ноября 2010

Я понял проблему, с которой столкнулся.По какой-то причине это был СЕТЕВОЙ СЕРВИС, который пытался получить доступ к файлу, а не ASPNET или IUSR.Я предоставил доступ на чтение к СЕТЕВОМ СЕРВИСУ этому каталогу, и все хорошо.Еще раз спасибо.

...