我在wcf服务中工作,这应该只允许一些自定义动词。
我在接口上使用[WebInvoke(UriTemplate = "/path", Method = "VERB", ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare)]
来接收请求。
我的需求是服务应该只允许方法=" VERB" ,对于其他方法,它应该返回 405 作为错误。除了方法=" GET" 之外,它适用于所有请求。我想为" GET" 返回 405 。
答案 0 :(得分:1)
我创建了一个测试项目并检查了您的问题。我指定了Method = "VERB"
,它运行得很好。服务拒绝所有其他方法(包括GET)。但是如果你想完全控制我建议使用Method = "*"
,然后拒绝所有其他无效的方法:
if (!HttpContext.Current.Request.HttpMethod.Equals("VERB", StringComparison.OrdinalIgnoreCase))
return 405;