SharePoint获取当前用户帐户名?

Sin*_*eta 6 javascript ajax sharepoint soap sharepoint-2010

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

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

我可以轻松访问的内容:

  • 从中获取当前用户ID __spUserId
  • 刮色带的HTML获取当前用户名(例如:$('#zz17_Menu').text())

但这些都不是帐号.

我不想做的事情:

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

Sin*_*eta 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" %>
Run Code Online (Sandbox Code Playgroud)

然后,在您想要访问属性(例如:UserName)之前,请拉入数据

<SPSWC:ProfilePropertyLoader runat="server"/>
Run Code Online (Sandbox Code Playgroud)

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

<script>
  var username = '<SPSWC:ProfilePropertyValue PropertyName="UserName" TitleMode="true" runat="server"/>';
</script>
Run Code Online (Sandbox Code Playgroud)

我们现在使用它,如此PasteBin演示中所示,使用一些属性(如名字,姓氏,用户名,个人资料图片,状态)填充全局.