禁用非标准Web API方法名称的POST回退策略

时间:2015-04-13 14:00:08

标签: asp.net-web-api asp.net-web-api2 asp.net-web-api-routing

任何不以配置的METHOD前缀开头的ASP.NET WebAPI2 ApiController方法名称(默认为Get...Post...Put...Delete...Head...Options...Patch...)将匹配HTTP' POST'。 (有关详细信息,请参阅Is there a default verb applied to a Web API ApiController method?。)

按照惯例,我宁愿选择加入每种方法,而不是选择退出。

对我来说,选择退出方法代表了更大的安全风险,并且没有任何有用的回报;为了保持一致性,为了支持POST,实现者应该在类方法Post...之前加上前缀。例如,名为SensitiveFunction()的ApiController方法不应与任何 HTTP方法匹配,除非我有意配置对“敏感”的支持。 HTTP方法。

是否有一个简单的配置更改,允许我禁用此POST后备政策?

或者,我是否忽略了一些我需要这种后备政策的原因?

1 个答案:

答案 0 :(得分:0)

默认操作选择仅查找公共实例方法。通过公开您的方法,您可以有效地选择"选择"。适当地限制您的方法只使用通过API接口看作公共和其他所有私有的方法。

http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-and-action-selection

  

考虑控制器上的哪些方法"操作"?选择操作时,框架仅查看控制器上的公共实例方法。此外,它不包括"特殊名称"方法(构造函数,事件,运算符重载等),以及从ApiController类继承的方法。