Доступ к файлам из сетевого ресурса в веб-приложении c #

У меня есть веб-приложение, которое должно читать (и, возможно, писать) файлы из общего сетевого ресурса. Мне было интересно, что лучший способ сделать это?

Я не могу предоставить сетевому сервису или учетным записям aspnet доступ к сетевому ресурсу. Я мог бы использовать олицетворение.

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


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

Есть одна проблема, о которой я могу думать с олицетворением … Я могу только олицетворять одного пользователя для каждого домена приложения, я думаю, но я счастлив, что его исправили. Возможно, мне придется записать этот файл в несколько разных разделов, что означает, что мне, возможно, придется выдавать себя за нескольких пользователей.

Мне нравится идея создания токена … если я смогу сделать это, я смогу попросить использовать фронт для своих учетных данных, а затем динамически применить безопасность и дать им значимые сообщения об ошибках, если доступ запрещен … I «Я буду играть, но я вернусь с обновлением.

    Учитывая, что у всех уже есть учетные записи домена. Попробуйте интегрированную аутентификацию IIS. Вы получите уродливое окно входа в сеть, но ваши кредиты должны перейти к файловому ресурсу.

    @lomaxx
    Вы говорите, что только у вас есть perms на долю или что вы вручную сопоставили ее с буквой диска. Если позже вы можете использовать ucn \ host \ share так же, как и использовать ac: \ shared_folder.

    Случайно. Было бы бременем отразить долю в локальной папке на хосте? Я слышал, что ROBOCOPY очень удобен.

    Другая идея. Запустите IIS на целевой ресурс, который вы можете прочитать через http, и если вам нужно написать исследование webdav.

    У меня не было проблем с прозрачным подключением к сетевым ресурсам, как если бы они были локальными дисками. Единственная проблема, с которой вы можете столкнуться, – это то, о чем вы упомянули: наличие aspnet записи aspnet получить доступ к этой доле. Олицетворение, вероятно, лучший способ сделать это.

    Вы должны иметь возможность использовать любые объекты для фильтрации для доступа к сетевому ресурсу, если на сервере есть буква диска.

    Олицетворение хорошо работало для меня в этом сценарии. У нас был мастер, который загружал zip-файл через веб-сайт, но мы загружаем сбалансированный сайт. Поэтому необходимо настроить способ сохранения файла на всех машинах.

    Существует много разных способов сделать это. Мы решили сделать все запросы для запуска под пользователем, который мы установили, и просто добавили запись в web.config и установили разрешения безопасности для папок для пользователя. Эта статья kb очень хорошо объясняет настройку.

    У вас есть некоторые варианты, и один из них – олицетворение, как вы упомянули. Однако другой, который я хотел бы использовать и использовал в прошлом, – это надежный вызов службы. Предположим на мгновение, что всегда намного безопаснее ограничивать доступ через IIS, чтобы обеспечить как можно меньше отверстий. С этим идем по этой дороге.

    Создайте службу WCF, которая имеет пару точек входа, и интерфейс может выглядеть так.

     public interface IDocumentService { public string BuildTrustedRelationship(string privateKey); public byte[] ReadFile(string token, string fileName); public void WriteFile(string token, string fileName, byte[] file); } 

    Теперь вы можете размещать эту услугу через службу Windows очень легко, и теперь вам нужно всего лишь сделать Application_start установить связь с сервисом, чтобы получить ваш токен, и вы отправитесь на гонки. Другая приятная вещь здесь заключается в том, что эта служба является внутренней, надежной, и я даже размещал ее на файловом сервере раньше, и поэтому гораздо проще предоставить разрешения для этой операции.

    Если вы можете создать нового пользователя AD, я думаю, что самым простым решением является запуск пула приложений под этим полномочием учетной записи AD, что означает, что ваше приложение теперь работает как пользователь AD. Вам нужно будет добавить пользователя AD в группу рабочих процессов IIS на машине, на которой запущено ваше приложение. Затем, пока ваш пользователь AD имеет права на запись в общий сетевой ресурс, вы должны иметь возможность использовать UNC-путь в своих файловых операциях.

    Interesting Posts

    Как я могу полностью отключить комбинацию клавиш CTRL-ALT-DEL на XP / Vista / 7?

    Не удается установить iTunes, так как не удалось получить доступ к службе установщика Windows

    Сохранение нескольких ggplots из ls в один и отдельные файлы в R

    Синхронизация календаря Lotus Notes с Календарем Google

    Сочетание строк в Java всегда приводит к созданию новых строк в памяти?

    Таймер Pomodoro для Linux

    Одновременное подключение нескольких сетей Wi-Fi

    точка нахождения пересечения в R

    Преобразование равномерного распределения в нормальное распределение

    Почему я не получаю ошибку сегментации, когда пишу за пределами массива?

    Сочетание двух или нескольких элементов canvasа с каким-то смешением

    Почему sudo меняет PATH?

    Как реализовать прокрутку между вкладками на Android?

    Как поставить страх перед Богом (законом) в Wi-Fi, взламывающий соседей

    Контроллер JavaFX FXML – конструктор против метода инициализации

    Давайте будем гением компьютера.