2

私の設定には次の設定があります。

routes.MapHttpRoute("NoAuthRequiredApi", "api/auth/", new { id = RouteParameter.Optional } );
routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}", new { id = RouteParameter.Optional }, null, new WebApiAuthenticationHandler());

api/authの URL に何かを投稿すると、メッセージ ハンドラーが引き続き実行され、Auth-Token ヘッダーがチェックされます。これが起こっている理由はありますか?WebApi ルートの構成で変更する必要があるものはありますか? その時点で、他のコントローラーで使用するトークンを取得しようとしているため、認証コントローラーにリクエストを行うときに、ヘッダーに認証トークンが必要ないことは明らかです。

4

1 に答える 1

2

どのコントローラーが必要かが示されていないため、最上位のルートが一致することはありません。デフォルトとしてコントローラ名を追加します。(これが不要な場合は、オプションのIDを削除します)。

それで:

routes.MapHttpRoute(
        name: "NoAuthRequiredApi",
        routeTemplate: "api/auth/",
        defaults: new { Controller = "Auth" }
    );
于 2012-12-14T09:18:32.213 に答える