3

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

想法?

4

1 回答 1

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

很明显,不是真的!

于 2008-10-22T14:59:56.710 回答