我已经设法在我自己定制的应用程序中实现了sharepoint中使用的Name.NameCtrl.1 active x for presence。一切正常,我正在根据Office Comunication Server上的用户状态正确更新状态。但是,我没有像在SharePoint中那样获得在状态控件中提供的用户的任何其他详细信息。我得到的只是电子邮件字段中的SIP地址(而不是AD中的真实默认电子邮件地址)以及安排会议的链接。
任何人都可以告诉我如何让控件填充AD中的详细信息(部门,电子邮件,电话等),就像在sharepoint中一样?此外,我没有像sharepoint那样在控件中获得组织选项卡。
有什么想法吗?
谢谢,
Keeney
答案 0 :(得分:2)
NameCtrl从客户端计算机上正在运行的Communicator实例(或Lync,如果您正在使用它)获取其大部分数据。没有数据直接从SharePoint中撤回。要让NameCtrl在您的网页上正常工作,您需要确保:
推荐的模式是在调用任何其他方法之前在NameCtrl对象上调用PresenceEnabled - 如果返回false,则上述prereqs中的一个(或两个)为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参考here
答案 1 :(得分:0)
我认为在SharePoint中,控件中填充了用户配置文件服务中存在的数据。如果您希望在非共享点ASP.NET Web应用程序中使用此功能,那么您必须从AD(并缓存它!)构建用户配置文件详细信息的存储库,您的控件将查看该存储库以显示该信息。