2

RequiredRoleと呼ばれる独自の属性を実装していますRequiredAnyRole。これにより、リストを渡しますが、ユーザーはロールの 1 つだけである必要があります。の代わりににHasAnyRole基づいてクエリを実行する、という独自のメソッドを実装しました。.Any().All()

Execute次に、 ではなく my メソッドを使用するようにメソッドをオーバーライドしましたHasAllRoles。問題は、メソッドが何をしているのかわからないことAssertRequiredRolesです。呼ばれてないみたい?

.Any()それをオーバーライドして使用する必要があります.All()か?元のコードは次のとおりです。

https://github.com/ServiceStack/ServiceStack/blob/82241fc96e187d12f9db2556aea37cf327813adc/src/ServiceStack.ServiceInterface/RequiredRoleAttribute.cs

4

1 に答える 1

1

AssertRequiredRoles は、 RequestLogsServiceなどの他のプラグインで使用できる静的ヘルパー メソッドであり、必要なロールを持つユーザーにのみアクセスが許可されるようにします。通常の属性フィルターとして使用する場合は呼び出されません。

Execute をオーバーライドすると、何が実行されるかを完全に制御できるため、必要なものだけをオーバーライドする必要があります。

于 2013-03-05T15:33:00.880 に答える