質問

サイトコレクション管理者ではないユーザーは、使用する際に問題なくユーザー情報リストから読むことができます http://server.domain.com/_vti_bin_/ListData.svc/UserInformationList しかし、これらのユーザーはそれを介してアクセスするときに404エラーを取得します http://server.domain.com/_api/web/lists/getbytitle('User Information List'). 。サイトコレクション管理者は404エラーを受け取りません。なぜこれがなぜそうなのか、そしてこの特定のエンドポイントのために回避されているかどうかを誰かが知っているでしょうか?

私は使えることを知っています _api/web/siteusers しかし、これは、Breeze.jsのSharePointアダプターを使用する場合、実際には、リストのタイトルを指定することを期待しているため、データのコンテキストで一貫性を保ちようとしているため、これはあまり好ましくありません。

編集: 実際に siteusers End Pointは同じデータを提供しません。実際にはサブセットのみがあります。回避策として私がやったことは私のものを修正することでした datacontext 使用するオブジェクト $httpListData.svc 風を使うのではなく。私はユーザーデータを変更していないので、最終的にはそれほど大したことではありませんが、これを行うためのより良い方法を理解したいと思います。 ListData.svc 非推奨です。

役に立ちましたか?

解決

私は考えます _vti_bin/ListData.svc_vti_bin/client.svc (_api)エンドポイントには、許可チェックのための異なるロジックがあります。

私はあなたの問題を再現することができます。サイト管理者としてログインしている間、私はリストにアクセスできますが、通常のユーザーとしてではありません。

_api/web/lists/getbytitle('User Information List')

結果で私が見つけたのは、その隠されたリストへの新しい(3番目の)リンクです。

_api/web/SiteUserInfoList/

このリンクを使用すると、非サイトアドミンは同じ情報にアクセスできます。私はあなたがあなたのためにそのリストへの統一されたアクセスを望んでいたことを知っています。しかし、おそらく、これは古いListData.SVCエンドポイントに戻る必要がないことなく回避策になる可能性があります。

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top