ServiceStack のAuthTestsは、ServiceStack サービス クライアントを使用する場合のさまざまな認証方法を示しています。デフォルトでは、BasicAuth と DigestAuth はクライアントに組み込まれています。
var client = new JsonServiceClient(baseUri) {
UserName = UserName,
Password = Password,
};
var request = new Secured { Name = "test" };
var response = client.Send<SecureResponse>(request);
舞台裏では、ServiceStack は通常どおりリクエストを送信しようとしますが、リクエストがサーバーによって拒否されてチャレンジされると、クライアントは同じリクエストを自動的に再試行しますが、今回は Basic/Digest Auth ヘッダーを使用します。
安全なサービスにアクセスしていることがわかっている場合に余分なホップをスキップするには、クライアントに次のように常に BasicAuth ヘッダーを送信するように指示できます。
client.AlwaysSendBasicAuthHeader = true;
認証する別の方法は、サービスを明示的に呼び出すことAuth
です (これには CredentialsAuthProvider を有効にする必要があります)。
var authResponse = client.Send<AuthResponse>(new Auth {
provider = CredentialsAuthProvider.Name,
UserName = "user",
Password = "p@55word",
RememberMe = true, //important tell client to retain permanent cookies
});
var request = new Secured { Name = "test" };
var response = client.Send<SecureResponse>(request);
サービスへの呼び出しが成功した後、Auth
クライアントは認証され、 RememberMeが設定されている場合、クライアントはその後の要求でサーバーによって追加されたセッション Cookie を保持します。これにより、そのクライアントからの将来の要求が認証されます。