gpt4 book ai didi

asp.net - 是否有应用于 Web API ApiController 方法的默认动词?

转载 作者:行者123 更新时间:2023-12-03 22:55:21 30 4
gpt4 key购买 nike

我一直在查看这篇文章中的代码(在 https://github.com/patelsan/WebAPIAuthentication 中):http://www.codeproject.com/Articles/630986/Cross-Platform-Authentication-With-ASP-NET-Web-API .

它非常好,似乎工作正常。解释这种 token 认证的文章很少,但这是我见过的最好的。请注意,我是这项技术的新手,还有很多东西要学。

所以,我注意到 UsersController 有这个代码:

public class UsersController : ApiController
{
public Status Authenticate(User user)
{
. . .
}
}
Authenticate方法不以已知的 HTTP 动词开头,例如Get 或 Post,并且没有 [HttpGet] 或 [HttpPost] 属性与此方法关联,那么 Controller 如何知道该方法与哪个动词关联?仅通过查看代码,我怎么知道我需要使用哪个动词?如果没有匹配项,是否有“默认”动词之类的东西?

顺便说一句,如果您想知道,唯一有效的动词是 POST。我很想知道为什么会这样。

最佳答案

在每天学习新东西下提交此文件!

通常方法名称匹配是 thought of this way .然而,查看 WebAPI 源代码,有一个用于回退的逻辑分支。如果方法名称未映射(通过属性或约定)到支持的 HTTP 动词,则默认为 POST。

默认情况下,操作选择通过 ReflectedHttpActionDescriptor 发生类(class)。这里的重要方法是GetSupportedHttpMethods() .在相关部分,代码如下:

        if (supportedHttpMethods.Count == 0)
{
// Use POST as the default HttpMethod
supportedHttpMethods.Add(HttpMethod.Post);
}

您可以看到 full source here (在文件的中间)。

关于asp.net - 是否有应用于 Web API ApiController 方法的默认动词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23686841/

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