3

ここにある最初の例を使用して、基本認証を使用してサービススタック サービスをセットアップしました: https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorization

これにより、ルートが自動的に設定されます: /auth/basic ただし、この URL (変数/GET/POST/Auth ヘッダーなど) への要求をフォーマットする方法に関する情報や例は見つかりません。

基本認証資格情報を使用して単純なサービスにアクセスできるため、それらはアクティブで正しいものです。

カスタム認証はプラグインされておらず、基本認証のみがプラグインされています。

私が試してみました:

  • JsonServiceClient を使用して、GET または Json POST によって UserName 変数と Password 変数を /auth/basic に送信します。Auth ヘッダーの有無にかかわらず、ユーザーとパスも含まれます。

  • ブラウザーを使用して、ユーザー/パスの URL パラメーターを含む GET 要求を送信する、またはhttp://user:pass@localhost:123/auth/basic

私はいつも「HTTP/1.1 401 Invalid BasicAuth credentials」を取得します。

私が見つけることができる唯一の例は、ある種のカスタム認証を含み、その後 /auth/credentials にアクセスしますが、 /auth/basic を使用したいです

コードを確認したところ、Auth ヘッダーを読み取っているように見えますが、サービスはそれを受け入れません。

私は実際にこれを機能させようとしているので、無効にして無効になっていることを確認できます(すべてのリクエストに基本認証を要求したい)。

質問は次のとおりです。

  • /auth/basic サービスを呼び出す正しい方法は何ですか? servicestack クライアント API の例、仕様、または未加工の http リクエストを取り上げます。

  • /auth サービスを完全に無効にするにはどうすればよいですか?

どうもありがとう。

4

2 に答える 2

1

/auth/basic サービスを呼び出す正しい方法は何ですか? servicestack クライアント API の例、仕様、または生の http リクエストを取り上げます。

var client = new JsonServiceClient("http://localhost:56006/api");
var resp = client.Post(new Auth() { UserName = "TestUser", Password = "Password" });
  • ICacheClientこれは、ユーザー アカウントも登録しているIAuthUserRepository(およびユーザー アカウントを追加した)ことを前提としています。

を呼び出すと、JSON 形式は次のようになります。/auth/basic?format=json

{
  "UserName": "admin",
  "Password": "test"
  "RememberMe": true
}

/auth サービスを完全に無効にするにはどうすればよいですか?

AuthFeatureプラグインを構成に追加しないでください。

プラグインを削除することもできます

Plugins.RemoveAll(x => x is AuthFeature);
于 2013-04-16T04:00:12.127 に答える
-1

以下をapphost configに入れるとうまくいくようです。

//Disable most things, including SOAP support, /auth and /metadata routes
SetConfig(new EndpointHostConfig()
{
    EnableFeatures = Feature.Json | Feature.Xml
});

ただし、ほとんどのルートが 404 を返すのに対し、これは空の応答を返すため、これが /auth に与える影響について少し疑問があります。

それで、これは本当に /auth 機能を無効にしますか? たとえば、誰かが /auth/credentials に対して正しいリクエストを作成した場合でも、空のレスポンスが返されるのでしょうか?

于 2013-04-15T05:08:52.360 に答える