からめもぶろぐ。

SharePoint が得意なフレンズなんだね!すごーい!

SharePoint 2013 REST API の UserCollection.GetByLoginName メソッドを呼び出すとエラーが発生する

SharePoint 2013 で REST API の UserCollection.GetByLoginName メソッドを呼び出したときに、以下のメッセージでエラーが発生することがあります。

危険な可能性のある Request.Path 値がクライアント (:) から検出されました。

エラーの詳細については @ さんのブログが詳しいです。

blog.daruyanagi.jp

何が問題かというと、SharePoint 2013 以降はクレーム ベース認証なので、ログイン名は「i:0#.w|domain\user」の形式になり、要するに常にコロンが入るってことです。ちなみに SharePoint Online では問題ないです。

(2018/2/9 追記)
GetByLoginName('i:0#.w|domain\user') は駄目で GetByLoginName(@v)?@v='i:0#.w|domain\user' の形式なら大丈夫らしい。なるほど。