Реализовать сервер WebDAV в C #? - PullRequest
10 голосов
/ 18 апреля 2010

У нас есть система CMS, написанная на .NET C #. Эта система имеет средства редактирования шаблонов (в основном, файлов HTML) и различных других файлов поддержки, таких как файлы CSS и javascript.

Эти "файлы" на самом деле не файлы, а записи базы данных, и они редактируются с использованием простых старых текстовых полей в системе CMS.

Чтобы упростить редактирование этих "файлов", одной из идей была реализация поддержки WebDAV в системе CMS для этих файлов, чтобы пользователи могли использовать некоторое клиентское программное обеспечение WebDAV для подключения к CMS, а затем открыть их, например, в VS 2008.

Во-первых, это осуществимая идея?

Во-вторых, если это так ... с чего начать? Какие-нибудь хорошие статьи о внедрении сервера WebDAV в C # для предоставления доступа к физическим документам или «псевдо» документам, которые на самом деле являются просто записями в базе данных?

Любой вклад приветствуется ....

1 Ответ

15 голосов
/ 18 апреля 2010

Один из возможных путей - разработка пользовательского обработчика HTTP с помощью интерфейса IHttpHandler, или вы можете использовать ASHX. Посмотрите на обзорные страницы на этой странице. http://msdn.microsoft.com/en-us/library/system.web.ihttphandler.aspx

Ваш обработчик WebDAV должен будет обрабатывать запросы и отправлять соответствующие обработчики методов для обработки различных методов HTTP (GET, POST, PUT, DELETE, MOVE, COPY и т. Д.). Какие методы вы поддерживаете, зависит от вашего требуемого уровня соответствия различным классам сервера WebDAV. К счастью, существует множество Java-кода для WebDAV, который вы можете найти и использовать в качестве справочного материала для своей реализации.

Если лицензия GPL не является для вас ограничением, возможно, стоит взглянуть на Sphorium's WebDAV.NET http://sourceforge.net/projects/webdav/

И есть коммерческие варианты. http://www.webdavsystem.com/server

И, конечно, самая важная ссылка, WebDAV RFC http://www.ietf.org/rfc/rfc2518.txt

...