контроль присутствия в веб-приложениях asp.net - PullRequest
2 голосов
/ 18 февраля 2011

Мне удалось реализовать активный x Name.NameCtrl.1, используемый в sharepoint, в моих собственных специально созданных приложениях для присутствия.Все работает нормально, и я корректно обновляю статус присутствия, основываясь на статусе пользователей на Office Comunication Server.Тем не менее, я не получаю никаких других подробностей о пользователе, который используется в элементе управления присутствием, как в SharePoint.Все, что я получаю, это sip-адрес в поле электронной почты (а не реальный адрес электронной почты по умолчанию в AD) и ссылку для планирования встречи.

Может кто-нибудь сказать мне, как заставить элемент управления заполняться деталями из AD (отдел, электронная почта, телефон и т. Д.), Как это происходит в sharepoint ??Также я не получаю вкладку организации в элементе управления, как sharepoint.

Есть идеи?

Спасибо,

Кини

Ответы [ 2 ]

2 голосов
/ 19 февраля 2011

NameCtrl получает большую часть своих данных из запущенного экземпляра Communicator (или Lync, если вы его используете) на клиентском компьютере. Данные не извлекаются напрямую из SharePoint. Чтобы NameCtrl правильно работал на ваших веб-страницах, вам необходимо убедиться, что:

  • Коммуникатор (или Lync) работает на клиенте и вошел в систему
  • Веб-страница, с которой вы вызываете NameCtrl, находится в зоне интрасети или доверенных сайтов в вашем браузере

Рекомендуемый шаблон - вызывать PresenceEnabled для объекта NameCtrl перед вызовом любых других методов - если это возвращает false, то один (или оба) из вышеупомянутых предварительных условий - false. Код ниже, как правило, работает для меня

<script>

var sipUri = "your.contact@your.domain.com";

var nameCtrl = new ActiveXObject('Name.NameCtrl.1');
if (nameCtrl.PresenceEnabled)
{
  nameCtrl.OnStatusChange = onStatusChange;
  nameCtrl.GetStatus(sipUri, "1");
}


function onStatusChange(name, status, id)
{
  // This function is fired when the contacts presence status changes.
  // In a real world solution, you would want to update an image to reflect the users presence
  alert(name + ", " + status + ", " + id);
}

function ShowOOUI()
{
  nameCtrl.ShowOOUI(sipUri, 0, 15, 15);
}

function HideOOUI()
{
  nameCtrl.HideOOUI();
}

</script>

<span onmouseover="ShowOOUI()" onmouseout="HideOOUI()" style="border-style:solid">Your Contact</span>

Если вы еще этого не видели, есть хорошая (ish) ссылка на NameCtrl здесь

0 голосов
/ 18 февраля 2011

Я думаю, что в SharePoint элемент управления заполнен данными, которые существуют в службе профилей пользователей.Если вы хотите сделать это в веб-приложении ASP.NET, не принадлежащем к sharepoint, вам нужно будет создать хранилище данных профиля пользователя из AD (и кэшировать его!), В котором ваш элемент управления будет искать эту информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...