SharePoint 2010使用SPServices获取用户标识

问题描述 投票:6回答:4

我正在使用SharePoint与SPServices jQuery库,我正在使用SPGetCurrentUser函数。但是,它似乎只返回没有ID的登录用户名。例:

DOMAIN\user

我需要带有ID的整个帐户名称:

1;#DOMAIN\user

如果只是为了返回ID,我可以将两者连接在一起。但我找不到它。

最终我正在尝试将列表项分配给当前用户。如果有一种方法可以在没有ID的情况下做到这一点,我也会对这种可能性持开放态度。谢谢!

jquery sharepoint-2010
4个回答
16
投票

好吧我明白了:

$().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");
        });
    }
});

这个小功能将创建三个变量:

  • curUserId =当前用户ID(例如:1)
  • curUserName =当前用户名称(例如:DOMAIN \ user)
  • curFullUserName =以SP格式组合的ID和名称(例如:#DOMAIN \ user)

希望能帮助到你!


1
投票

你可以试试:

 $().SPServices.SPGetCurrentUser({
        fieldName: "ID"
    });

0
投票
$(xData.responseXML).find("PropertyData > Name:contains('Name')").each(function() {
Name = $(this).parent().find("Values").text();
alert(Name);
});

Please click here more details


0
投票

建立在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'格式匹配,请注意第二个转义反斜杠。

© www.soinside.com 2019 - 2024. All rights reserved.