簡體   English   中英

控制器中自定義方法的WebApi路由

[英]WebApi Routing for Custom Method in Controller

我最近選擇了ASP.NET Web API的東西,雖然我已經破解了授權和身份驗證,但我無法破解路由。 這是一場噩夢!

我已經創建了一個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條路線? 我不確定你要完全准確地實現什么,但你最有可能只用頂級(默認)路線來實現它。 如果刪除或注釋掉最后3條路線並使用web api,則執行GET時應該觸發Authenticate方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM