如何计算用户MySite的ID

时间:2008-10-22 11:37:05

标签: c# .net sharepoint moss

在用C#编写的Sharepoint WebPart中,我需要查找当前用户MySite的ID,或者检查当前站点是否为用户MySite。

想法?

1 个答案:

答案 0 :(得分:6)

我花了整个下午的时间来研究这个问题并且已经解决了。

在引用Microsoft.Office.Server.dll和Microsoft.Sharepoint.dll

之后添加以下using语句
using Microsoft.SharePoint;
using Microsoft.Office.Server;
using Microsoft.Office.Server.UserProfiles;

然后执行以下操作访问用户个人资料:

ServerContext sc = ServerContext.Current;
UserProfileManager upm = new UserProfileManager(sc);
UserProfile up = upm.GetUserProfile(SPContext.Current.Web.CurrentUser.LoginName);

然后您可以通过以下方式获取MySite的网站集ID(SPSite.ID):

upm.GetUserProfile(SPContext.Current.Web.CurrentUser.LoginName).ID

或站点ID(SPWeb.ID):

upm.GetUserProfile(SPContext.Current.Web.CurrentUser.LoginName).PersonalSite.RootWeb.ID

很明显,不是真的!