【发布时间】:2011-10-12 04:52:35
【问题描述】:
我正在构建一个 Web 部件以放在 Sharepoint 我的网站上。我需要获取 Web 部件所在的我的网站的 SPUser。目前我只是使用
Request.QueryString["accountname"]
但这不适用于我自己的“我的网站”,我也不确定它是否会一直有效。
【问题讨论】:
标签: c# .net sharepoint mysite
我正在构建一个 Web 部件以放在 Sharepoint 我的网站上。我需要获取 Web 部件所在的我的网站的 SPUser。目前我只是使用
Request.QueryString["accountname"]
但这不适用于我自己的“我的网站”,我也不确定它是否会一直有效。
【问题讨论】:
标签: c# .net sharepoint mysite
当Request.QueryString["accountname"] 为空时,用户应该在自己的mysite 上,因此您可以查看SPContext.Current.Web.CurrentUser 以获取用户。
【讨论】:
这是使用 UserProfile (Microsoft.Office.Server.UserProfiles) 的另一种方法
var profileLoader = Microsoft.SharePoint.Portal.WebControls.ProfilePropertyLoader.FindLoader(HttpContext.Current.Handler as Page);
var userProfile = profileLoader.ProfileLoaded;
var loginName = userProfile["AccountName"];
然后从 SPContext.Current.Web 获取您的 SPUser;
【讨论】:
另一种可能的方法是使用SPSite 的Owner 属性。这将为您提供一个通常更可取的SPUser 对象。此属性与可以在 Central Admin 中的“更改网站集管理员”下配置的“网站所有者”属性相关。但是请注意,由于可以对其进行配置,因此不能将其视为了解您在我的网站上的绝对来源。
【讨论】: