WCF和HMACMD5身份验证和Uri已更改

时间:2012-07-31 17:55:05

标签: wcf rest

我在RESTFul wcf服务上使用HMACMD5身份验证。部分签名基于请求的资源或客户请求的完整URL。

然后我尝试验证服务中的签名。由于请求的URL是签名的一部分,我需要得到它。我试图通过以下方式获取原始网址:

WebOperationContext.Current.IncomingRequest.UriTemplateMatch.ToString();
WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri.OriginalString;

这并不总是有效。我认为这可能是一个域问题,因为这只是在同一域上使用SSL的测试服务器上的测试阶段。

例如,当我发送

_HTTPS://www.mytestingserver.com/GetResourcse/xxx/xxx

我其实在写

_HTTPS:// MYTESTSERVER-DMZ / XXX / XXX

登录我的服务。

我如何测试这一点,更重要的是,我如何确保在重写之后我始终可以获得客户端在签名中使用的内容以及您拥有的内容,因为它不在:

incomingRequestContext.UriTemplateMatch.RequestUri.OriginalString;

我已经开始使用WebOperationContextOperationContext记录几乎所有内容,以尝试在网络服务器上进行此操作。

感谢任何帮助。 谢谢,

1 个答案:

答案 0 :(得分:0)

FYI

我可以阅读这篇文章:

Allowing Access to HttpContext in WCF REST Services

这有效,但也许有更好的方法而不改变基础协议。