Запись в сетевое расположение в ASP.NET (с использованием AD) - PullRequest
0 голосов
/ 11 сентября 2009

Я столкнулся с (надеюсь) маленькой проблемой. У меня есть веб-приложение, написанное на ASP.NET, которое будет работать на компьютере под управлением Windows 2003 Server с использованием IIS 6.0. Когда я запускаю его локально, он работает идеально. Когда я запускаю его с сервера, сайт работает нормально. Проблема заключается в записи в удаленную папку. У меня есть сетевая папка с разрешениями AD, в которые приложение пишет. С моей учетной записью AD (когда я пишу ее локально) она аутентифицируется должным образом, но при использовании учетной записи IIS - нет. Кто-нибудь сталкивался с этим? Какие-либо решения доступны?

До сих пор я пытался использовать свою учетную запись AD в качестве «Гостевой учетной записи» в IIS, с которой работает сайт, но она все равно не сработала.

Любые мысли, объяснения или предложения будут с благодарностью!

Спасибо.

Ответы [ 4 ]

3 голосов
/ 11 сентября 2009

По умолчанию ASP.NET работает в контексте локальной учетной записи пользователя, которая не будет иметь доступа к вашим машинам AD. Вы можете перенастроить пул соединений для работы в качестве учетной записи домена, и вот, он получает доступ. Вы должны предоставить учетной записи домена как можно меньше привилегий, добавить ее в IIS_WPG на компьютере IIS и дать ей права на запуск в качестве службы для этого поля.

2 голосов
/ 11 сентября 2009

Я обычно решаю эти ситуации, выполняя пару шагов.

  • В AD создайте аккаунт для сервиса.
  • Добавьте эту учетную запись в сетевой ресурс, к которому вы хотите получить доступ.
  • Затем запустите приложение ASP.Net с использованием этой учетной записи службы вместо локальной учетной записи IIS.
  • В вашем файле web.config вы поместите следующую строку под

    <system.web>
    <identity impersonate="true"/>
    </system.web>

0 голосов
/ 11 сентября 2009

Вы также можете подумать о том, чтобы сделать так, как предлагается в этом ответе SO:

Аутентификация Windows в ASP.NET олицетворяет проблему

Оберните код, который выполняет запись, в удаленное местоположение, а все остальное можно оставить в покое. Это обеспечит вам максимальную безопасность для веб-приложения, поскольку вы олицетворяете учетную запись с этими записями только для кода, который нуждается в этом, а не во всем.

0 голосов
/ 11 сентября 2009

Может ли это быть связано с учетной записью, под которой работает пул приложений?

...