1

SCIM フィルタリング仕様https://www.rfc-editor.org/rfc/rfc7644#section-3.4.2.2としてユーザーのクエリをサポートする ASP.NET Web API を実装する必要があります。

それを行う最も速い方法は何ですか?フィルタリング式を解析し、専用のユーザー リポジトリでその式を実行し、選択したエンティティを返すことができるパーサーを実装する必要があることはわかっていますが、そのパーサーを最初から実装するのは大変な作業ですよね?

SCIM フィルタリングをサポートするより高速な方法またはより標準的な方法はありますか?

4

1 に答える 1

3

Please see https://github.com/PowerDMS/Owin.Scim

I have implemented it such that Owin.Scim takes the filter string, whether a query filter or patch filter, normalizes it, and then constructs an expression tree / lambda predicate which you can use in linq.

What's not yet implemented is how to support SCIM's query-on-root - where you're filtering on multiple resource types at once.

ScimFilter normalizes the string with support for resource extensions. Patching is a whole separate process which uses a custom json.net contract resolver. At the time of this writing, ScimFilter will give you a list of PathFilterExpressions. (if you're querying, you'll only have one).

You can use an extension method to take a PathFilterExpression and get back a strongly-typed predicate (Func<Resource, bool>). See: https://github.com/PowerDMS/Owin.Scim/blob/master/source/Owin.Scim/Extensions/PathFilterExpressionExtensions.cs

Alternatively, you can grab the alpha Owin.Scim.Antlr dll. https://github.com/PowerDMS/Owin.Scim/tree/master/source/lib

This will give you the ScimFilterLexer & ScimFilterParser.

于 2016-05-25T15:42:50.743 に答える