Гаджет Windows для списка SharePoint 2007 с использованием SOAP, Javascript, C#, веб-служб, jQuery
-
11-12-2019 - |
Вопрос
Я пытаюсь разработать гаджет для Sharepoint 2007, который будет аутентифицировать пользователя, а затем получать ему список SharePoint по определенному URL-адресу.
Последние 4 дня я работал над этим и наткнулся на разные способы его реализации, но поскольку решения либо наполовину готовы, либо не работают, либо слишком запутаны, чтобы получить помощь или преобразовать их в то, что я хочу.
Поскольку гаджет Windows использует сценарии + HTML, у меня есть следующие варианты для продолжения работы над созданием этого гаджета:
- Создайте проект Visual Studio (dll), который будет получать список для меня с помощью SPLIST/SPWeb из Sharepoint, а затем я смогу использовать JavaScript и Visual Studio «COM», чтобы прочитать эту dll («Классы») и получить данные в JavaScript + отобразить их. на HTML.Проблема с этим подходом заключается в том, что я не уверен: если я создам «dll» с помощью Sharepoint SPLIST и помещу его в папку гаджета, будет ли он работать на клиентах (на компьютерах которых не установлен SharePoint).Пытаясь найти помощь по этому подходу к проблеме, я нахожу этот проект, который делает то же самое, но не совсем уверен, внесу ли я в него изменения, и он будет работать с «dll», о котором я говорил ранее, вот ссылка на Гаджет,
Гаджет Gmail, использующий JavaScript для чтения библиотеки Visual Studio Dll
- Второй подход к решению проблемы может заключаться в следующем: если я использую веб-сервисы Sharepoint, я получу все элементы списка, но тогда использовать веб-сервисы в JavaScript не так просто, поэтому, если я создам проект Visual Studio, получите веб-ссылку на веб-службы SharePoint и возвращаю список, который я снова использую JavaScript для чтения результатов из DLL и отображения их в HTML.
- Другое решение — использовать Jquery для получения данных списка SharePoint, как в предыдущей ссылке, но опять же, как я могу аутентифицировать своих пользователей @ гаджет?
Использование jQuery для получения данных списка
Мое любимое решение — использовать SOAP или REST вместе с веб-сервисами. Я хочу использовать SOAP для получения данных списка SharePoint и одновременной аутентификации своих пользователей. Я нахожу сотни руководств по этому вопросу, но ни один из них на самом деле не выполняет аутентификацию и не рассказывает, как это сделать. это может работать в гаджете, используя JavaScript/HTML,
Я нашел в Интернете несколько гаджетов, которые каким-то образом связаны с тем, что мне нужно, они либо не работают, либо не могут быть изменены на то, что я хочу.
Приветствую за прочтение. Надеюсь, вы либо расширите свои знания, либо поделитесь ими :)
РЕДАКТИРОВАТЬ *Я имел в виду использование Sharepoint MOSS «SPLIST» или «SPWEB» в качестве объектной модели клиента, поскольку я использую Moss, я не могу использовать аутентификацию объектной модели клиента :(.очень извините за неправильную информацию*
Решение
Вы устанавливаете это на ПК пользователя, поэтому вы не можете использовать стандартный API SharePoint (Microsoft.sharepoint.dll)
Вы используете 2007 год, поэтому вы не можете использовать «модель объекта клиента» (сценарий Managed / Silverlight или EMCA)
Это листья
a) веб-сервисы SharePoint (JavaScript или jQuery, который все еще JavaScript).
Это означает, что ваш гаджет будет аутентифицировать для SharePoint через тот же механизм, который кто-то просматривает на вашем сайте - нормально интегрирован Windows Auth.
Первое место для начала это отличное http://spservices.codeplex.com/ Библиотека, которая Позволяет легко вызвать веб-сервисы от jQuery). Смотрите документацию для советов о том, как его использовать.
Для половиной сделанного проекта проекта Как насчет того, как насчет http://sharepointbodybar.codeplex.com/
b) Создайте свои собственные пользовательские веб-сервисы, развертывая DLL на сервере SharePoint, затем вызовите их через JavaScript (возможно, Usign JSON или аналогичный скорее
Другие советы
Если вы можете позволить себе развертывание COM-компонента вместе с вашим гаджетом, первый подход подойдет.Вы помещаете свою логику в фасад класса CCW .NET (используя OM клиента .NET SP) и регистрируете ее для COM с помощью regasm.Весь чистый .NET, ваш класс будет объявлен (и написан) COM-совместимым.
Позже вы можете обнаружить, что второй подход слишком ограничивает;SP ClOM поддерживает больше функций, чем SP WS.Добавление jQuery не сильно меняет ситуацию.(К сожалению, SP JS ClOM можно использовать только на страницах SP;не в гаджете.)
Если вы пойдете по пути боли (JS ;-), IWA должен предоставить вам аутентификацию SSO (Windows).Если вы вызываете SP ClOM из DLL, вы можете либо повторно использовать токен сеанса Windows текущего пользователя (SSO), либо явно аутентифицироваться с помощью вашей формы, если пользователь этого пожелает.(Вы также можете войти в SP UI под другим пользователем, чем в Windows.) Оба поддерживаются.
Я бы сначала попробовал подход DLL.
Обновлять: Упс, у вас SP 2007, а не 2010 - SP ClOM нет.Я должен был заметить раньше, извини...Тем не менее, вы можете создать .NET DLL, которая будет взаимодействовать с SP через WS.Вы все еще можете установить DefaultNetworkCredentials
к HttpWebRequest.Credentials
(ОТДЫХ) или .Credentials
вашего клиентского класса WS (SOAP) для получения аутентификации SSO.Или создайте свой собственный NetworkCredential
с именем и паролем.
--- Ферда