SharePoint获取当前用户帐户名?

时间:2012-06-20 17:24:01

标签: javascript ajax sharepoint soap sharepoint-2010

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

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

我可以轻松访问的内容:

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

但这些都不是帐号。

我不想做的事情:

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

2 个答案:

答案 0 :(得分:5)

对于那些偶然发现这一点的人,一年之后我才知道如何。

到您的母版页register SPSWC(如果您使用的是Randy Drisgill的starter master,那么它已经在那里了。)

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

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

<SPSWC:ProfilePropertyLoader runat="server"/>

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

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

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

答案 1 :(得分:1)

您确实需要进行Web服务调用才能可靠地执行此操作。值得庆幸的是,SPServices可以快速轻松地完成这项任务。

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

$().SPServices.SPGetCurrentUser({
    fieldName: "Name",
    debug: false
});