Webアプリケーションでユーザーが認証されている場合にのみswagger-uiとメタデータへのアクセスを許可したいが、APIアクセスを常に許可したいAPIにはいくつかのパブリックメソッドと基本認証を必要とするものがあります)。Swagger-UIのServiceStack APIドキュメントが閉鎖されている
public override RouteAttribute[] GetRouteAttributes(Type requestType)
{
var routes = base.GetRouteAttributes(requestType);
routes.Each(x => x.Path = "/API" + x.Path);
return routes;
}
そして:
ServiceRoutes = new Dictionary<Type, string[]> {
{
typeof(AuthenticateService), new[] { "/api/auth", "/api/auth/{provider}" }
},
}
そして、これだけでなくウェブの設定で:
<location path="api">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
は、だから私は何をしたか、私はAPIのために、このルートの接頭辞を追加します
そして事はそれですwhe n今は/api/
に行きますが、何らかのメソッドを呼び出せば、login
ルートにreddirectされます。
私が始めたようにこれを解決する方法はありますか、それとも文書を保護する良い方法がありますか?
恐縮です、ありがとうございます。 – ShP
もう1つ質問がありますが、私はhttpsサイトに自分のアプリケーションを配置したので、 'https:// example.com/mywebapp/swagger-ui /'のように見えますが、 'https://example.com: 8443/swagger-ui/'(ポートを追加して、アプリケーションが実際に座っている部分を削除する)、それはなぜですか?ローカルで実行すると正常に動作します... – ShP
@ShPプロキシを経由しているため、生成されたURLは着信要求に基づいています。 'Config.WebHostUrl'を設定して、代わりに使用する外部URLを指定することができます。 – mythz