我正在使用SharePoint与SPServices jQuery库,我正在使用SPGetCurrentUser
函数。但是,它似乎只返回没有ID的登录用户名。例:
DOMAIN\user
我需要带有ID的整个帐户名称:
1;#DOMAIN\user
如果只是为了返回ID,我可以将两者连接在一起。但我找不到它。
最终我正在尝试将列表项分配给当前用户。如果有一种方法可以在没有ID的情况下做到这一点,我也会对这种可能性持开放态度。谢谢!
好吧我明白了:
$().SPServices({
operation: "GetUserInfo",
async: false,
userLoginName: $().SPServices.SPGetCurrentUser(),
completefunc: function (xData, Status) {
$(xData.responseXML).find("User").each(function() {
curUserId = $(this).attr("ID");
curUserName = $(this).attr("Name");
curFullUserName = $(this).attr("ID")+";#"+$(this).attr("Name");
});
}
});
这个小功能将创建三个变量:
希望能帮助到你!
你可以试试:
$().SPServices.SPGetCurrentUser({
fieldName: "ID"
});
$(xData.responseXML).find("PropertyData > Name:contains('Name')").each(function() {
Name = $(this).parent().find("Values").text();
alert(Name);
});
建立在skinneejoe的答案上,它将返回当前用户的ID;要根据其登录信息(即域\用户名)查找其他用户的ID,只需添加以下逻辑:
function getUserIdByUsername(login) {
var user = {};
var params = {
operation: "GetUserInfo",
async: false,
completefunc: function (xData, Status) {
$(xData.responseXML).find("User").each(function () {
user.curUserId = $(this).attr("ID");
user.curUserName = $(this).attr("Name");
user.curFullUserName = $(this).attr("ID") + ";#" +
$(this).attr("Name");
});
}
};
if (login != null) {
params.userLoginName = login;
} else {
params.userLoginName = $().SPServices.SPGetCurrentUser();
}
$().SPServices(params);
return user;
}
getUserIdByUsername('DOMAIN\\User')
注意:Userlogin应该与'DOMAIN \\ User'格式匹配,请注意第二个转义反斜杠。