当前用户的SharePoint 2010 REST筛选器

时间:2012-10-13 18:38:59

标签: rest sharepoint-2010

在SharePoint 2010中使用REST,如何选择/过滤属于当前登录用户的列表行(无论是按作者,编辑者还是按人员字段过滤的情况)

e.g。

http://myserver/_vti_bin/ListData.svc/Test?$filter=Author eq Me

我知道在SP2007中,使用caml可以使用表示当前用户值的UserID元素。

编辑: Humm,似乎作者,编辑器和任何其他Person字段都存储为Ints,并重命名为CreatedById和ModifiedById。如果您查询列表,则只需

<d:CreatedById m:type="Edm.Int32">1</d:CreatedById>

如果我想取回用户的NT名称该怎么办?我是否必须在某处进行另一个查询以获取特定用户的Int值?

2 个答案:

答案 0 :(得分:5)

您也可以将此与UserID一起使用。 使用代码检索UserId:

var userId = _spPageContextInfo.userId;

并在URL中使用它,如下所示:

"http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedById eq"+userId

例如:http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedById eq 213

它将为您提供当前LoggedIn用户创建的所有项目。

您还可以使用'和'

添加一些额外的过滤器
"http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedById eq"+userId+" and StatusValue eq 'approved'"

例如:

"http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedById eq 213 and  StatusValue eq 'approved'"

答案 1 :(得分:3)

http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$expand=CreatedBy

并使用

http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedBy/Account eq 'OFFICE\alexandr.pletnev'