Олицетворение в ASP.NET MVC

У меня есть веб-приложение MVC в интрасети, и я хочу иметь возможность создавать файлы на нашем FTP-сервере для отправки сторонним партнерам.

Код для олицетворения использует WindowsImpersonationContext.

System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();

StreamWriter sw = System.IO.File.CreateText("PathOnFTPServer");
sw.Write("data");

impersonationContext.Undo();

Вот'с чемПроисходит и причина моего вопроса:

Пред олицетворение

User.Identity.Name: [мои учетные данные Windows]

System.Security.Principal.WindowsIdentity.GetCurrent (). Имя: NT AUTHORITY \ NETWORK SERVICE

Post Олицетворение

User.Identity: [мои учетные данные Windows]

GetCurrent.Name: [мои учетные данные Windows]

Выдавать себя за отмену

User.Identity: [мои учетные данные Windows]

GetCurrent.Name: NT AUTHORITY \ NETWORK SERVICE

Итак, перед тем, как я олицетворять, текущий пользователь является системной учетной записью, но после олицетворения он использует мою учетную запись домена Windows, у которой есть разрешение на создание текстовых файлов на FTP-сервере. Код работает локально с использованием веб-сервера Visual Studio, но не тогда, когда я развертываю его на IIS на нашем тестовом сервере.

получаю ошибку "отказано в доступе". Какова будет причина ошибки, когда правильный пользователь выдает себя за другого?

Ответы на вопрос(1)

Ваш ответ на вопрос