Запись в сетевые папки с ASP.net C#

#c# #asp.net #networking #directory

#c# #asp.net #сеть #каталог

Вопрос:

У меня возникли проблемы с доступом к сетевому ресурсу с помощью ASP.net C #.

Я использовал идентификатор в web.config

 <identity impersonate="true" userName="username" password="password" />
  

И изменил файл machine.config. Я также включил олицетворение в IIS.

Я пытаюсь использовать этот код:

 System.IO.Directory.CreateDirectory("\\networklocation\test");
  

И я получаю следующую ошибку:

Сообщение об ошибке синтаксического анализатора: не удалось создать токен пользователя Windows на основе учетных данных, указанных в файле конфигурации. Ошибка из-за сбоя входа в операционную систему: неизвестное имя пользователя или неверный пароль.

Общий сетевой ресурс имеет доступ ко всем пользователям (учетная запись everyone).

Есть идеи, что здесь происходит не так?

Комментарии:

1. Вы могли бы облегчить себе жизнь, переместив сетевое содержимое в путь в вашем веб-приложении.

2. @jrummell существуют веские причины для необходимости доступа к общим сетевым ресурсам из веб-приложения, и я лично успешно сделал это, используя олицетворение идентификатора.

3. Не является ли учетная запись аутентификации на удаленном общем ресурсе удостоверением apppool?

4. @Richard нет, если используется олицетворение.

5. @JustinM. Кейс, я согласен на 100%, я просто говорю, что это все усложняет.

Ответ №1:

Вы указываете правильный домен для пользователя?

 <identity impersonate="true"
          userName="domainuser" 
          password="password" />
  

Комментарии:

1. @user1038885 Можете ли вы войти в систему как этот пользователь с экрана входа в систему Windows, используя те же учетные данные?

Ответ №2:

почему вы используете олицетворение, если активна каждая учетная запись?

удалите раздел олицетворения