大家都在谈内容推送,其实SharePoint Portal Server 2003中有一个很好的功能可以帮我们实现这个功能。可以将内容的链接主动的发布到个人网站的“您的链接”Web部件区域里。配合访问群体,就可以实现按照用户在组织中的角色(或者说在活动目录中的从属关系、特定的属性信息等)来决定显示用户所关心的内容。这样当用户打开个人主页时,所有与自己相关的信息都摆在了案头,岂不是很方便。
如何操作呢,其实很简单。管理员可以在“网站设置”的门户网站内容一节中的“管理我的网站上的目标链接”中添加、编辑。
进一步,我想要通过编程来实现上述的过程,通过参考sdk,实现代码如下:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->TopologyManagertm=newTopologyManager();
PortalSiteps=tm.PortalSites[newUri("http://testsrv")];
Microsoft.SharePoint.Portal.PortalContextctx=Microsoft.SharePoint.Portal.PortalApplication.GetContext(ps);
GuidguidTopics=AreaManager.GetSystemAreaGuid(ctx,SystemArea.MySite);
AreaareaMysite =AreaManager.GetArea(ctx,guidTopics);
System.Guid[]guids=newGuid[1];
guids[0]=newSystem.Guid("{00000000-0000-0000-0000-000000000000}");
areaMysite.Listings.AddListing("Example","",ListingType.ExternalUrl,"http://www.example.com",guids);
PortalSiteps=tm.PortalSites[newUri("http://testsrv")];
Microsoft.SharePoint.Portal.PortalContextctx=Microsoft.SharePoint.Portal.PortalApplication.GetContext(ps);
GuidguidTopics=AreaManager.GetSystemAreaGuid(ctx,SystemArea.MySite);
AreaareaMysite =AreaManager.GetArea(ctx,guidTopics);
System.Guid[]guids=newGuid[1];
guids[0]=newSystem.Guid("{00000000-0000-0000-0000-000000000000}");
areaMysite.Listings.AddListing("Example","",ListingType.ExternalUrl,"http://www.example.com",guids);
为一串零的ID代表的是“所有门户用户”这个特殊的访问群体。这里只加了这么一个访问群体。当然我们也可以指定多个了,只需要获取相应的ID加到这个数组里就可以了。
这里可以看到“我的网站”实际上是一个特殊的门户区域,我们要操作的就是这个区域下的门户列表。这里我添加了一个外部链接作为我们要推送的内容。有关更详细的门户列表操作,请参考sdk.