4

私は最近ASP.NETWebAPIのものを手に入れました、そして私が承認と認証をクラックしている間、私はルーティングをクラックすることができません。悪夢です!

Authenticate()を使用してメソッドを作成しましたAuthenticationController[HttpGet]属性を追加しますAuthenticate()が、APIをヒットするたびに。を取得し404ます。

これが私の現在のことWebApiConfigです:-

public static void Register(HttpConfiguration config)
{
     config.Routes.MapHttpRoute("DefaultApiWithId", "{controller}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" });
     config.Routes.MapHttpRoute("DefaultApiWithAction", "{controller}/{action}");
     config.Routes.MapHttpRoute("DefaultApiGet", "{controller}", new { action = "Get" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) });
     config.Routes.MapHttpRoute("DefaultApiPost", "{controller}", new { action = "Post" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) });
}

そして、私が試しているアドレスは次のとおり/authenticationです。

コントローラは次のようになります:-

[BasicHttpAuthorize(RequireAuthentication = true)]
public class AuthenticationController : ApiController
{
     [HttpGet]
      public string Authenticate(string email, string password, string agent, string ip)
      {

      }
}

誰かが私を正しい方向に向けることができますか?複数のアドレス/エンドポイントをヒットしてみました:-

  • /authentication/authenticate
  • /authentication/
  • /authentication
4

1 に答える 1

1

私のコメントによると:

なぜ4つのルートがあるのですか?正確に何を達成しようとしているのかわかりませんが、おそらく最上位(デフォルト)ルートのみで達成できます。Web APIを使用して最後の3つのルートとあなたを削除またはコメントアウトした場合、GETを実行するときにAuthenticateメソッドがヒットするはずです。

于 2012-09-23T14:22:07.877 に答える