Несанкционированный доступ при записи в файл - PullRequest
0 голосов
/ 01 апреля 2009

У меня есть сайт asp.net, где пользователи могут распечатать документ. Этот документ сначала записывается в папку на сервере, а затем открывается / печатается клиентом. При развертывании веб-сайта на сервере IIS я несколько раз сталкивался с проблемами, когда пользователь пытался распечатать документ. По-видимому, у пользователя IIS на сервере было недостаточно прав доступа для записи в локальную папку и, следовательно, возникло исключение неавторизованного доступа.

Кто из них является пользователем IIS и как мне предоставить ему право записи в папку на сервере в .net?

Ответы [ 5 ]

2 голосов
/ 02 апреля 2009

Я бы дал доступ на запись / изменение учетных записей IUSR_MACHINE и NETWORK SERVICE. Чтобы действительно изменить разрешения, найдите папку в проводнике Windows, получите Свойства папки. На вкладке «Безопасность» щелкните пользователя в списке (может потребоваться сначала добавить пользователя в список), а затем установите соответствующие флажки в столбце «Разрешить».

Кроме того, когда я сталкиваюсь с проблемой разрешений, Sysinternals Process Monitor почти всегда решает ее. Запустите procmon.exe, настройте фильтры, исключив процессы из известных исправных процессов (щелкните правой кнопкой мыши на имени процесса и выберите «Исключить« explorer.exe »»). Я также обычно исключаю известные результаты, такие как УСПЕХ, и некоторые другие. Затем можно воспроизвести проблему, и в нижней части списка будет отображена яркая блестящая запись «ACCESS DENIED», включая имя учетной записи пользователя и конкретный ресурс, к которому она пыталась получить доступ.

Ссылка для скачивания: http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

0 голосов
/ 02 апреля 2009

Вы можете использовать олицетворение ASP.NET - http://msdn.microsoft.com/en-us/library/aa292118(VS.71).aspx - чтобы проверить, может ли ваша программа работать под выбранной учетной записью пользователя.

Я считаю, что это весьма полезно для изучения проблем, связанных с разрешениями учетной записи.

0 голосов
/ 01 апреля 2009

Также часто используется пользователь с именем «IUSR», используемый этим процессом.

0 голосов
/ 01 апреля 2009

В операционных системах серверного класса ASP.NET 2.0 работает под учетной записью «Сетевая служба». (Я не уверен, использует ли он другую учетную запись для XP.)

Вместо предоставления этой учетной записи большего доступа, вероятно, стоит запустить ASP.NET под выделенной учетной записью. Этот PDF объясняет, как это сделать. (Это объясняет для IIS 6.0; в IIS 7.0 он может немного отличаться, но, вероятно, в целом он такой же.)

0 голосов
/ 01 апреля 2009

Обычно это пользователь NETWORK SERVICE, но у него есть права на запись в нужную папку.

...