ServiceStackの認証/承認コードのいくつかの例を見てきましたが、この問題を乗り越えることはできません。ServiceStack APIサービスRequiresAnyRoleは常に403エラーを返します
私はBasicAuthProvider
から派生し、それを私のAppHostのプラグインに登録したカスタムAuthFeature
を作成しました。私のカスタムプロバイダーではTryAuthenticate
とOnAuthenticated
をオーバーロードし、私のサービスでは[Authenticate]
と[RequiresAnyRole("Test")]
の属性を持つクラスを装飾しました。私のユースケースでは、TryAuthenticate
を呼び出して認証を渡すAuthヘッダにユーザ名とパスワードを渡してから、OnAuthenticated
メソッドにアクセスしてセッション変数にロール(この場合は "Test")を入力します。結果は403 Invalid Role
です。 RequiresAnyRole
属性を削除すると認証が機能し、現在のセッション変数を見て自分が作成した役割を見ることもできます。さらに、同じ結果を持つRequiredRole
とRequiredPermission
(セッションへのアクセス許可を追加して)を試しました。
テストロールを正しくセッションに追加しているかどうか、またはカスタム認証プロバイダを正しく実装していることを教えてもらえますか?あなたはむしろ持続していないセッションオブジェクトを使用するよりもAssignRole
にを使用使用する必要があります
[Authenticate]
[RequiresAnyRole("Test")]
public class TestService: Service
{
...