1

カスタム認証プロバイダーを Servicestack に登録するのに少し問題があります。以下を使用して、サービスの認証を構成しています。

        Plugins.Add(new AuthFeature(() => new CustomUserSession(),
                new IAuthProvider[] { 
                    new VendorAuth(appSettings),
                    new FacilitiesAuth(appSettings)
                }, null));

テストとして、最初の認証プロバイダーは常に成功するように設定されています。

    public class VendorAuth : CredentialsAuthProvider
    {

        public VendorAuth(AppSettings appSettings) : base(appSettings) { } 

        public override object Authenticate(IServiceBase authService, IAuthSession session, Auth request)
        {
            return base.Authenticate(authService, session, request);
        }

        public override bool TryAuthenticate(IServiceBase authService, string userName, string password)
        {
            return true; 
        }
    }

ここで、私の理解が少し崩れている可能性があります。しかし、クライアントでは、次の方法で「VendorAuth」プロバイダーにアクセスしようとしています:

    public class VendorAuth : Auth
    {
    }

 

    var AuthResponse = client.Post(new VendorAuth
    {
        provider = "credentials", // This may be an issue
        UserName = "someuser", 
        Password = "somepass",
        RememberMe = true
    });

クライアントが認証を試みると、これは常に 405 を返すようです。

POST /json/syncreply/VendorAuth HTTP/1.1" 405

質問は... カスタム認証プロバイダーを正しく登録しているように見えますか?

4

1 に答える 1

0

以下を実装します。

public override bool IsAuthorized(IAuthSession session, IAuthTokens tokens, Authenticate request = null)
{
    return true;
}

これはおそらく失敗した呼び出しです。動作するようになった場合は、 を基本実装への呼び出しに置き換え、return trueそれをデバッグして、失敗の原因となっているコードを見つけます。

于 2015-01-04T23:38:58.230 に答える