0

我正在尝试为我的 WCF Web 服务进行 HMAC-SHA256 身份验证。

在网上阅读了很多关于 HMAC-SHA 的内容后,我开始将它们应用到我的项目中。

现在我已经成功地在客户端加密了消息,但是如何在请求进入 WebMethods 之前对请求进行身份验证呢?

我想我应该添加一个 HttpModule 来利用 Init() 事件并在那里进行验证?

但是,只要我将 HttpModule 添加到我的 WCF 项目并配置 web.config,我就会收到错误消息:

An error occurred while receiving the HTTP response to http://localhost:61884/MyService.svc.
This could be due to the service endpoint binding not using the HTTP protocol.
This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down).
See server logs for more details.

我在这种情况下使用 HttpModule 是否正确?

我的 web.config,以防万一

<system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpModules>
        <add name="HttpAuthenticationModule" type="WcfService.HttpAuthenticationModule" />
    </httpModules>
</system.web>
4

1 回答 1

0

我认为 HttpModule 不适用于从 VisualStudio 启动的自托管 WCF 服务。在 IIS 中托管 WCF 服务后,HttpModule 在 BeginRequest() 处命中断点,正如我现在所期望的那样。

希望这可以帮助那些面临同样问题的人。

于 2013-09-10T15:51:54.950 回答