首页 > 解决方案 > _sppagecontext.userEmail 不会返回所有用户的电子邮件 ID。如何在 Sharepoint Online 和 2013 中配置它

问题描述

_sppagecontext.userEmail 不会返回所有用户的电子邮件 ID。对于某些用户,需要 _spPageContextInfo.userLoginNam。

标签: sharepoint-2013sharepoint-online

解决方案


对于 SharePoint Online,用户登录名和 userEmail 应该相同,并且将为:username@tenantname.onmicrosoft.com

在此处输入图像描述

对于 SharePoint On-Premise,_spPageContextInfo 仅提供 userId 属性,用于电子邮件和登录名:

<script src="//code.jquery.com/jquery-3.1.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {

var userid = _spPageContextInfo.userId;

function GetCurrentUser() {
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";

var requestHeaders = { "accept" : "application/json;odata=verbose" };

$.ajax({
  url : requestUri,
  contentType : "application/json;odata=verbose",
  headers : requestHeaders,
  success : onSuccess,
  error : onError
});
}

function onSuccess(data, request){
  console.log(data.d);
  var loginName = data.d.LoginName;
  var email=data.d.Email;
  alert(loginName);
  alert(email);
}

function onError(error) {
  alert(error);
}

GetCurrentUser();

});
</script>

确保当前用户个人资料中的工作电子邮件不为空。


推荐阅读