微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 控制器中自定义方法的WebApi路由

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

我用AuthenticationController创建了一个Authenticate()方法.我将[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",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 /
> /身份验证

解决方法

根据我的评论

为什么你有4条路线?我不确定你要完全准确地实现什么,但你最有可能只用顶级(认)路线来实现它.如果删除或注释掉最后3条路线并使用web api,则执行GET时应该触发Authenticate方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐