IIS настроен для Встроенная проверка подлинности Windows.
web.config
настроен следующим образом:
<authentication mode="Windows" />
<identity impersonate="true" />
Мы балансируем нагрузку между \ webserver1 и \ webserver2.
Windows Server 2003
\\ webserverX создает XML-файл для \\ share1, и доступ запрещен.
Мы получили отказ в доступе, разрешив Everyon доступ к общему ресурсу ...
Мы бы хотели, чтобы олицетворенный пользователь был владельцем созданного файла. Вместо этого учетная запись компьютера \\ webserver1 является владельцем.
Как мы можем убедиться, что олицетворенный пользователь владеет файлом во время создания?
ПРОГРЕССИЯ:
Я решил создать файл локально в корневом каталоге \\ webserver1.
Владельцем файла является СЕТЕВЫЕ СЛУЖБЫ, даже если impersonate = "true".
Я не могу изменить владельца файла в коде C #.
Почему при создании файла IIS не будет использовать права записи олицетворенного пользователя? Если это действительно так, что я делаю не так?
Ладно люди,
Разрешения на запись и владение, используемые при создании файла, - ASP.NET, локальная учетная запись!!!
Замените эту учетную запись сетевой учетной записью AD.
Предоставьте этой учетной записи разрешения на необходимые общие ресурсы.
Эта учетная запись будет владельцем файлов, созданных локально и удаленно.
Насколько я знаю, выдача себя за другое лицо на уровне процесса невозможно ...
Похоже, что для создания файла используется идентификатор пула приложений (по умолчанию NETWORK SERVICE); попробуйте изменить это и посмотрите, что произойдет.
Может быть, это поможет вам: http://msdn.microsoft.com/en-us/library/ms998351.aspx.
В качестве альтернативы вы можете заставить олицетворение использовать фиксированную учетную запись, то есть:
<identity impersonate="true"
userName="domain\user"
password="password" />
Таким образом, вам не нужно вносить какие-либо изменения в конфигурацию IIS.