Гаджет Windows для списка SharePoint 2007 с использованием SOAP, Javascript, C#, веб-служб, jQuery

StackOverflow https://stackoverflow.com//questions/10650490

Вопрос

Я пытаюсь разработать гаджет для 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.

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

  • Другое решение — использовать Jquery для получения данных списка SharePoint, как в предыдущей ссылке, но опять же, как я могу аутентифицировать своих пользователей @ гаджет?

Использование jQuery для получения данных списка

Гаджет, который получает ленту новостей с веб-сайта, отправляет запрос HTTPxml, но затем запрашивает канал RSS, тогда как у меня нет обратной связи Rss на сайте SharePoint, над которым я работаю.

Приветствую за прочтение. Надеюсь, вы либо расширите свои знания, либо поделитесь ими :)

РЕДАКТИРОВАТЬ *Я имел в виду использование 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 с именем и паролем.

--- Ферда

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top