Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Открыть файлы из сетевой папки в веб-приложение c#
У меня есть веб-приложение, которое должно читать (и, возможно, записывать) файлы из общего сетевого ресурса. Мне было интересно, как лучше всего это сделать?
Я не могу предоставить сетевой службе или учетным записям aspnet доступ к сетевому ресурсу. Я вполне мог бы использовать олицетворение.
Сетевой ресурс и веб-приложение размещаются в одном домене, и я могу создать нового пользователя в домене специально для этой цели, однако я не совсем уверен, как соединить точки между созданием filestream и указанием учетных данных для использования в веб-приложении.
К сожалению, диск не сопоставлен с сетевым диском на машине, он доступен мне только как сетевой ресурс, поэтому, к сожалению, я не могу сделать прозрачный вызов.
Есть одна проблема, которую я могу придумать с олицетворением... Я могу выдавать себя только за одного пользователя на домен приложения, но я счастлив быть исправленным. Возможно, мне придется записать этот файл в несколько разных общих папок, что означает, что мне придется выдавать себя за нескольких пользователей.
Мне нравится идея создания токена... если я смогу это сделать, то смогу заранее запросить у пользователей их учетные данные, а затем динамически применить защиту и выдавать им значимые сообщения об ошибках, если доступ будет запрещен... Я ухожу играть, но вернусь с обновлениями.
Учитывая, что у всех уже есть доменные учетные записи. Попробуйте использовать встроенную аутентификацию IIS. Вы получите уродливую коробку входа в систему из сети, но ваши creds должны перейти в общий файловый ресурс.
@lomaxx
Вы говорите, что только у вас есть завивки для общего ресурса или что вы вручную сопоставили его с буквой диска. Если позже вы можете использовать ucn \host\share так же, как вы использовали бы c:\shared_folder.
Случайность Будет ли обременительно зеркальное отображение общего ресурса в локальную папку на хосте? Я слышал, что ROBOCOPY-это очень удобно.
другая идея. Запустите IIS на вашей целевой папке, которую вы можете прочитать через http, и если вам нужно написать исследование webdav.
У меня не было никаких проблем с прозрачным подключением к сетевым общим ресурсам, как если бы они были локальными дисками. Единственная проблема, которую вы можете иметь, это то, что вы упомянули: имея учетную запись aspnet получить доступ к общей папке. Олицетворение, вероятно, лучший способ сделать это.
Вы должны иметь возможность использовать любые объекты filestream для доступа к сетевому ресурсу, если он имеет букву диска на сервере.
Олицетворение хорошо работало для меня в этом сценарии. У нас был мастер, который загрузил файл zip через веб-сайт, но мы загрузили сбалансированный сайт. Поэтому необходимо было настроить способ сохранения файла на всех машинах.
Есть много различных способов сделать это. Мы решили сделать все запросы для запуска под пользователем, которого мы настроили, и просто добавили запись web.config и настроили разрешения безопасности для папок для пользователя. Эта статья очень хорошо объясняет установку.
У вас есть несколько вариантов, и один из них-олицетворение, как вы упомянули. Однако еще один способ, который я люблю использовать и использовал в прошлом, - это доверенный вызов службы. Давайте на мгновение предположим, что всегда гораздо безопаснее ограничить доступ через 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 в своих файловых операциях.