[英]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.