gpt4 book ai didi

c# - Controller 中自定义方法的 WebApi 路由

转载 作者:行者123 更新时间:2023-11-30 12:49:06 28 4
gpt4 key购买 nike

我最近学习了 ASP.NET Web API 的东西,虽然我破解了授权和身份验证,但我无法破解路由。这是一场噩梦!

我创建了一个带有 AuthenticationControllerAuthenticate() 方法。我将 [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

Controller 看起来像这样:-

[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 方法应该被命中

关于c# - Controller 中自定义方法的 WebApi 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12552054/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com