Javascript SharePoint是否获取当前用户帐户名?
SharePoint 2010是否将当前用户的accountname存储在全局可访问的JS对象中 我能找到的每一个解决方案都涉及到ajax web服务调用的一些变体,而这似乎是一个非常繁重的解决方案,用于访问应该是一个微不足道的信息 我可以轻松访问的内容:Javascript SharePoint是否获取当前用户帐户名?,javascript,ajax,sharepoint,soap,sharepoint-2010,Javascript,Ajax,Sharepoint,Soap,Sharepoint 2010,SharePoint 2010是否将当前用户的accountname存储在全局可访问的JS对象中 我能找到的每一个解决方案都涉及到ajax web服务调用的一些变体,而这似乎是一个非常繁重的解决方案,用于访问应该是一个微不足道的信息 我可以轻松访问的内容: 从\uu spUserId 通过删除功能区的html(例如:$(“#zz17_菜单”).text()获取当前用户名。) 但这两个都不是帐户名 我不愿做的事情: 通过对GetUserProfileByName的SOAP调用获取当前用户信息
- 从
\uu spUserId
- 通过删除功能区的html(例如:
)$(“#zz17_菜单”).text()获取当前用户名。
- 通过对GetUserProfileByName的SOAP调用获取当前用户信息
- 通过对../\u layouts/userdisp.aspx进行Ajax调用来获取当前用户信息
$().SPServices.SPGetCurrentUser({
fieldName: "Name",
debug: false
});
对于任何一个偶然发现这一点的人,一年后我找到了方法 到你的母版页(如果你正在使用Randy Drisgill的母版页,它已经在那里了)
然后,在您想要访问属性(例如:UserName)之前,拉入数据
<SPSWC:ProfilePropertyLoader runat="server"/>
接下来,访问其中一个属性,我建议使用TitleMode将其嵌入
元素中
<script>
var username = '<SPSWC:ProfilePropertyValue PropertyName="UserName" TitleMode="true" runat="server"/>';
</script>
var用户名=“”;
如图所示,我们现在使用它来填充一个全局文件,其中包含一些属性,如名字、姓氏、用户名、配置文件图片、状态。不幸的是,“快速无痛”对我来说并不意味着我的应用程序快速无痛。SPServices使用了我提到的第二种方法,它带来了../_layouts/userdisp.aspx的完整副本,在我的环境中,它是22KB的数据,需要花费一秒钟的时间来检索,然后让jQuery将整个响应初始化为一个文档片段,最后深入获取您的信息。这类似于我在建房子,然后等着你在邮箱上写下你的名字。如果你的目标是提高性能,那么我建议写一个定制的REST服务,它接受用户id并返回用户名。这样,所有繁重的工作都可以在服务器端完成。这是一个好主意,也是一个替代对SharePoint services进行异步调用的好方法。对于angular也可以很好地工作,因为您可以在应用程序引导时使用用户数据定义角度值,而不是使用angular服务“延迟加载”用户信息。
<script>
var username = '<SPSWC:ProfilePropertyValue PropertyName="UserName" TitleMode="true" runat="server"/>';
</script>