SharePoint 2010 использует SPServices для получения идентификатора пользователя - PullRequest
6 голосов
/ 04 апреля 2011

Я использую SharePoint с библиотекой jQuery SPServices и использую функцию SPGetCurrentUser. Однако, похоже, он просто возвращает имя пользователя для входа в систему без идентификатора. Пример:

DOMAIN\user

Мне нужно полное имя учетной записи с идентификатором:

1;#DOMAIN\user

Если есть способ просто вернуть идентификатор, я могу соединить их вместе. Но я не могу его найти.

В конечном итоге я пытаюсь назначить элемент списка текущему пользователю. Если есть способ сделать это без удостоверения личности, я открыт для этой возможности. Спасибо!

Ответы [ 4 ]

16 голосов
/ 05 апреля 2011

Хорошо, я понял это:

$().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 = идентификатор текущего пользователя (например: 1)
  • curUserName = имя текущего пользователя (например, DOMAIN \ user)
  • curFullUserName = идентификатор и имя, объединенные в формате SP (например: 1; #DOMAIN \ user)

Надеюсь, это поможет!

1 голос
/ 04 апреля 2011

Вы можете попробовать:

 $().SPServices.SPGetCurrentUser({
        fieldName: "ID"
    });
0 голосов
/ 15 февраля 2019

Опираясь на ответ skinneejoe, который вернет идентификатор текущего пользователя;чтобы найти идентификатор для других пользователей на основе их регистрационной информации (например, домен \ имя пользователя), просто добавьте следующую логику:

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', обратите внимание на второй экранирующий обратный слеш.

0 голосов
/ 28 октября 2015
$(xData.responseXML).find("PropertyData > Name:contains('Name')").each(function() {
Name = $(this).parent().find("Values").text();
alert(Name);
});

Пожалуйста, нажмите здесь более подробную информацию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...