Asp.net доступ к сетевому ресурсу - PullRequest
1 голос
/ 17 сентября 2009

У меня есть приложение ASP.NET, которое должно сохранять файлы в общую сетевую папку (Samba).

Для общего доступа требуется имя пользователя и пароль для подключения.

Я подключил постоянный диск к общему ресурсу и предоставил учетные данные для входа в систему, войдя на сервер как DOMAIN \ WEBUSER.

Я изменил виртуальный каталог, в котором размещено мое приложение, чтобы использовать учетную запись DOMAIN \ WEBUSER вместо учетной записи IWAM.

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

Что я упускаю?

Ответы [ 3 ]

5 голосов
/ 17 сентября 2009

Вы пытались отобразить диск в коде? Вот класс для этого ...

public static class NetworkDrives
    {
        public static bool  MapDrive(string DriveLetter, string Path, string Username, string Password)
        {

            bool ReturnValue = false;

            if(System.IO.Directory.Exists(DriveLetter + ":\\"))
            {
                DisconnectDrive(DriveLetter);
            }
            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.CreateNoWindow = true;
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.RedirectStandardOutput = true;

            p.StartInfo.FileName = "net.exe";
            p.StartInfo.Arguments = " use " + DriveLetter + ": " + Path + " " + Password + " /user:" + Username;
            p.Start();
            p.WaitForExit();

            string ErrorMessage = p.StandardError.ReadToEnd();
            string OuputMessage = p.StandardOutput.ReadToEnd();
            if (ErrorMessage.Length > 0)
            {
                throw new Exception("Error:" + ErrorMessage);
            }
            else
            {
                ReturnValue = true;
            }
            return ReturnValue;
        }
        public static bool DisconnectDrive(string DriveLetter)
        {
            bool ReturnValue = false;
            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.CreateNoWindow = true;
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.RedirectStandardOutput = true;

            p.StartInfo.FileName = "net.exe";
            p.StartInfo.Arguments = " use " + DriveLetter + ": /DELETE";
            p.Start();
            p.WaitForExit();

            string ErrorMessage = p.StandardError.ReadToEnd();
            string OuputMessage = p.StandardOutput.ReadToEnd();
            if (ErrorMessage.Length > 0)
            {
                throw new Exception("Error:" + ErrorMessage);
            }
            else
            {
                ReturnValue = true;
            }
            return ReturnValue;
        }

    }
0 голосов
/ 05 марта 2019

Прошло много времени (6 или 8 лет) с тех пор, как я сделал что-то подобное, но, насколько я помню, мне также пришлось запустить пул APP в качестве пользователя домена, который имел доступ к общему сетевому ресурсу, чтобы IIS чтобы иметь возможность обслуживать файлы из него.

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

Лучше всего использовать UNC, если это возможно, поскольку сопоставленные диски обычно связаны с интерактивным пользователем, а виртуальный каталог, вероятно, соединяется с типом входа службы или сетевого входа.

Другое возможное исправление описано в этой статье базы знаний. Ошибка возникает при настройке IIS для использования общего сетевого ресурса Samba в качестве корневого . Выдержка ниже.

Внимание! Эти шаги могут увеличиваться ваш риск безопасности. Эти шаги могут также сделать компьютер или сеть более уязвимы для атак злоумышленников пользователи или вредоносные программы, такие как вирусы. Мы рекомендуем процесс, который эта статья описывает, чтобы включить программы работать так, как они есть предназначен для или для реализации конкретных возможности программы. Прежде чем сделать эти изменения, мы рекомендуем вам оценить риски, которые связаны с реализацией этого процесса в вашем конкретная среда. Если вы решили чтобы реализовать этот процесс, возьмите любой соответствующие дополнительные шаги, чтобы помочь защитить систему. Мы рекомендуем Вы используете этот процесс, только если вы действительно требуют этого процесса.

Предупреждение. Этот метод включает риск безопасности, потому что пользователь, который Созданное отображение должно оставаться зарегистрированным на локальной консоли. Следовательно, единственная безопасность заключается в блокировке компьютер. Чтобы обойти эту проблему, выполните следующие действия:

  1. Назначьте букву диска \ servername \ iisroot с помощью «root» и "Пароль".
  2. В виртуальном каталоге Samba измените домашний каталог с Share с другого компьютера на локальный Каталог, а затем укажите диск буква, которую вы отобразили на шаге 1.
  3. Перезапустите веб-сайт, а затем протестируйте его, просмотрев.
...