当前用户的SharePoint 2010 REST筛选器

Fer*_*gal 4 rest sharepoint-2010

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

例如

http://myserver/_vti_bin/ListData.svc/Test?$filter=Author eq Me
Run Code Online (Sandbox Code Playgroud)

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

编辑:Humm,似乎作者,编辑和任何其他人员字段存储为Ints并重命名为CreatedById和ModifiedById.如果你查询一个列表,你得到的就是

<d:CreatedById m:type="Edm.Int32">1</d:CreatedById>
Run Code Online (Sandbox Code Playgroud)

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

Amo*_*are 5

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

var userId = _spPageContextInfo.userId;

并在URL中使用它如下:

"http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedById eq"+userId
Run Code Online (Sandbox Code Playgroud)

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

它将为您提供由Current LoggedIn用户创建的所有项目.

您还可以使用'和'添加一些额外的过滤器

"http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedById eq"+userId+" and StatusValue eq 'approved'"
Run Code Online (Sandbox Code Playgroud)

例如:

"http://spdevportal/dev/Lab2/_vti_bin/ListData.svc/IPParams?$filter=CreatedById eq 213 and  StatusValue eq 'approved'"
Run Code Online (Sandbox Code Playgroud)