6

SharePoint 2010 是否将当前用户的帐户名存储在全局可访问的 JS 对象中?

我能找到的每个解决方案都涉及 ajax Web 服务调用的一些变体,这似乎是一个非常繁重的解决方案,可以访问应该是微不足道的信息。

我可以轻松访问的内容:

  • 获取当前用户ID__spUserId
  • 通过抓取功能区的 html 获取当前用户名(例如$('#zz17_Menu').text():)

但这些都不是帐户名。

我宁愿不做的事情:

  • 通过对 GetUserProfileByName 的 SOAP 调用获取当前用户信息
  • 通过对 ../_layouts/userdisp.aspx 进行 Ajax 调用来获取当前用户信息
4

2 回答 2

5

对于任何偶然发现这一点的人,一年后我想出了如何。

到您的母版页注册 SPSWC(如果您使用的是 Randy Drisgill 的入门母版,它将已经存在)。

<%@ Register Tagprefix="SPSWC" Namespace="Microsoft.SharePoint.Portal.WebControls" Assembly="Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

然后,在你想访问一个属性(例如:用户名)之前,拉入数据

<SPSWC:ProfilePropertyLoader runat="server"/>

接下来,访问其中一个属性,我建议使用 TitleMode 将其嵌入到<script>元素中。

<script>
  var username = '<SPSWC:ProfilePropertyValue PropertyName="UserName" TitleMode="true" runat="server"/>';
</script>

我们现在使用它,如这个PasteBin 演示中所示,用一些属性填充一个全局变量,如名字、姓氏、用户名、个人资料图片、状态。

于 2013-08-30T22:29:56.120 回答
1

您确实需要进行 Web 服务调用才能可靠地执行此操作。值得庆幸的是,SPServices 使这样做变得快速而轻松。

http://spservices.codeplex.com/wikipage?title= $%28%29.SPServices.SPGetCurrentUser

$().SPServices.SPGetCurrentUser({
    fieldName: "Name",
    debug: false
});
于 2012-06-20T17:41:04.813 回答