我需要使用客户端对象模型在SharePoint 2010中获取用户的LookUpId。我能够使用EnsureUser方法获取它,但是如果该用户不可用于该站点,则此方法会将用户添加到SharePoint网站。我的要求是在不将用户添加到SharePoint的情况下获取LookupId 是否有另一种方法可以在不使用EnsureUser方法的情况下获取LookupId? 如果没有,在使用EnsureUser方法获取LookupId之后,我们可以从SharePoint站点中删除用户吗?
感谢您的建议。
答案 0 :(得分:0)
Web.SiteUserInfoList Property获取包含该网站的网站集的UserInfo列表。
以下代码演示了如何通过userName获取userInfo(包括userId
属性):
function getUserInfo(userName,Success,Error)
{
var context = new SP.ClientContext.get_current();
var userInfoList = context.get_web().get_siteUserInfoList();
var query = new SP.CamlQuery();
var viewXml = "<View> \
<Query> \
<Where> \
<Eq><FieldRef Name='UserName' /><Value Type='Text'>" + userName + "</Value></Eq> \
</Where> \
</Query> \
<RowLimit>1</RowLimit> \
</View>";
query.set_viewXml(viewXml);
var items = userInfoList.getItems(query);
context.load(items,'Include(Deleted,Department,EMail,FirstName,ID,IsActive,IsSiteAdmin,JobTitle,LastName,MobilePhone,Name,Notes,Office,Picture,SipAddress,UserName,WebSite,WorkPhone)');
context.executeQueryAsync(function(){
if(items.get_count() > 0) {
var item = items.itemAt(0);
Success(item.get_fieldValues());
}
else {
Success(null);
}
},
Error
);
}
//Usage
getUserInfo('username@tenant.onmicrosoft.com',function(userInfo){
console.log('User Id: ' + userInfo.ID);
},
function(sender,args){
console.log(args.get_message());
});