Доступ к библиотеке документов SharePoint из веб-приложения?

Можно ли получить доступ к библиотеке документов SharePoint 2010 из веб-приложения? Если да, то не могли бы вы указать мне правильное направление?

Мне нужно написать приложение, которое позволит управлять версиями документов, регистрировать / выписывать, скачивать / выгружать и искать.

До сих пор я написал базовое приложение Windows Forms, которое может выполнять все функции, упомянутые ранее, но теперь мне нужно получить к ним доступ из веб-приложения.


person Josh Price    schedule 05.12.2012    source источник
comment
Многое зависит от того, ожидаете ли вы, что это приложение winform будет работать на самом сервере SharePoint или на любом другом компьютере. Что ты делаешь?   -  person Reacher Gilt    schedule 06.12.2012
comment
Конечная цель - получить доступ к библиотекам с любого компьютера с аутентификацией. Однако я все еще изучаю SharePoint, поэтому любые предложения будут приняты во внимание.   -  person Josh Price    schedule 06.12.2012
comment
Также возможно ли отобразить содержимое библиотеки документов на веб-странице? Поскольку это также решит мою проблему.   -  person Josh Price    schedule 06.12.2012


Ответы (3)


Из приложения Windows Forms вы можете использовать управляемую клиентскую объектную модель для доступа к библиотекам документов SharePoint и т. Д. Дополнительные сведения см. По этой ссылке:

http://msdn.microsoft.com/en-us/library/ee857094%28v=office.14%29.aspx

person Steve Mannina    schedule 05.12.2012
comment
В итоге я использовал клиентскую объектную модель, как вы предложили. Спасибо за вашу помощь - person Josh Price; 06.12.2012

Сначала вы должны проверить, что вы хотите предоставить веб-приложению. Будет ли это веб-приложение общедоступным (через Интернет)? Или он будет использоваться только для внутреннего пользования.

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

Если это общедоступный веб-сервис, вы должны проверить, какая часть функциональности вам понадобится. Потому что это будет означать, что вам также придется предоставить свои службы SharePoint в Интернет. Другой вариант - написать собственный сервис, который реализует необходимую функциональность, а затем просто предоставить эту услугу. Это снизит риск для вашей безопасности, и, возможно, вы сможете повторно использовать часть кода, который вы использовали в своем приложении Windows Forms, и переместить его в службу.

person Mathieu    schedule 05.12.2012
comment
Спасибо за ссылку ... Проверю. - person Josh Price; 06.12.2012

Для начала нужно добавить ссылку на Microsoft.SharePoint.dll.

Вот пример кода, как вы можете получить доступ к элементам внутри библиотеки документов:

        using (SPSite site = new SPSite("SiteUrl"))
        {
            using (SPWeb web = site.OpenWeb())
            {
                web.AllowUnsafeUpdates = true;
                //documentCategories is list of doc library names on SPSite, so catName  could be something like "Invoices"
                foreach (string catName in documentCategories)
                {
                    SPFolder folder = GetFolder(web, catName, processInstanceId, false);
                    if (folder.Exists)
                    {
                        //handle specific document...
                        foreach (SPFile file in folder.Files)
                        {

                        }
                    }
                }
                web.Close();
            }
            site.Close();
        }

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

Для получения дополнительных технических сведений посетите:

SPSite

SPWeb

SPFile

person Gregor Primar    schedule 05.12.2012
comment
Похоже, он запрашивает информацию о том, как получить к нему доступ из веб-приложения, отличного от SharePoint, тогда как ваше решение будет заключаться в доступе к библиотеке документов из самого веб-приложения SharePoint. - person skeletank; 06.12.2012
comment
Да, этот код следует запускать за пределами портала SharePoint. В противном случае это может быть обозначено как неоптимальное. - person Gregor Primar; 06.12.2012
comment
using блок плюс Dispose? Это кое-какие ремни и подтяжки. - person Reacher Gilt; 06.12.2012
comment
Да, и экземпляр spsite создается из URL-адреса, а не из текущего контекста. - person Gregor Primar; 06.12.2012
comment
точка, являющаяся блоком using, автоматически избавится от своего IDisposable. - person Reacher Gilt; 06.12.2012
comment
Это правда, что web.Dispose и site.Dispose будут вызываться в любом случае при выходе из использования. - person Gregor Primar; 06.12.2012
comment
Удалили их, чтобы не ошибиться. - person Gregor Primar; 06.12.2012