Sharepoint 2010 SharePoint客户端对象模型中重用器的替代方案
我需要使用客户端对象模型获取SharePoint 2010中用户的LookUpId。我可以使用EnsureReuser方法获取它,但是如果用户无法访问SharePoint网站,则此方法会将用户添加到该网站。我的要求是在不将用户添加到SharePoint的情况下获取LookupId 有没有其他方法可以在不使用EnsureReuser方法的情况下获取LookupId? 如果没有,在使用EnsureReuser方法获取LookupId后,我们是否可以从SharePoint网站删除该用户 感谢您的建议。获取包含该网站的网站集的用户信息列表 下面的代码演示了如何通过用户名获取userInfo(包括Sharepoint 2010 SharePoint客户端对象模型中重用器的替代方案,sharepoint-2010,sharepoint-clientobject,Sharepoint 2010,Sharepoint Clientobject,我需要使用客户端对象模型获取SharePoint 2010中用户的LookUpId。我可以使用EnsureReuser方法获取它,但是如果用户无法访问SharePoint网站,则此方法会将用户添加到该网站。我的要求是在不将用户添加到SharePoint的情况下获取LookupId 有没有其他方法可以在不使用EnsureReuser方法的情况下获取LookupId? 如果没有,在使用EnsureReuser方法获取LookupId后,我们是否可以从SharePoint网站删除该用户 感谢您的建议。
userId
property):
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());
});
函数getUserInfo(用户名、成功、错误)
{
var context=new SP.ClientContext.get_current();
var userInfoList=context.get_web().get_siteUserInfoList();
var query=new SP.CamlQuery();
var viewXml=”\
\
\
“+用户名+”\
\
\
1 \
";
query.set_viewXml(viewXml);
var items=userInfoList.getItems(查询);
加载(项目,'包括(已删除、部门、电子邮件、名字、ID、IsActive、ISISTEAdmin、职务头衔、姓氏、手机、姓名、备注、办公室、图片、SipAddress、用户名、网站、工作电话)';
executeQueryAsync(函数(){
if(items.get_count()>0){
var item=items.itemAt(0);
成功(item.get_fieldValues());
}
否则{
成功(空);
}
},
错误
);
}
//用法
getUserInfo('username@tenant.onmicrosoft.com,函数(userInfo){
log('User Id:'+userInfo.Id);
},
函数(发送方,参数){
console.log(args.get_message());
});
client对象模型的Web类具有“SiteUserInfoList”属性。它是指向隐藏列表的链接,其中包含当前网站集上的所有现有用户。如果您不想使用EnsureReuser方法,您可以尝试查询以获取用户。感谢您提供的解决方案。还有一个问题。。实际上,我需要使用客户机对象模型更新文档的“修改人”。如果该用户在站点中不可用,但在AD中存在,该怎么办?是否可以在不知道查找ID的情况下将该用户添加到“修改人”字段?建议将用户从active directory导入SharePoint(用户配置文件)。我无权访问服务器。使用EnsureReuser获取LookupId并更改“modified by”字段并将用户从站点中删除是否可以?我必须很密集,但我并不清楚这是用什么语言编写的。JavaScript?