我是WCF的新手。我有一个WCF REST服务,它支持ServiceAuthorizationManager。要求是将从客户端收到的请求记录到DB中的表中。这应该发生在哪里,我的意思是在实现ServiceAuthorizationManager的AuthorizationManager中?以及如何收集所有信息,如客户端的IP地址,客户端传递的auth标头,以便我可以填充对象并在Global.asax类的Application_EndRequest中进行db调用。
请告知。
谢谢, 拉朱
答案 0 :(得分:2)
考虑向您的服务添加邮件检查器。我发现这个链接可能会有所帮助: WCF REST Message Inspector
在AfterReceiveRequest
方法中,您可以从请求标头中提取标题信息等。
在BeforeSendReply
而不是Application_EndRequest
中实施您的逻辑。
答案 1 :(得分:0)
如果您在IIS 7+中托管服务,更简单的方法是设置AppFabric并为该服务启用端到端监控,而不是自己动手。 Here's a blog post显示示例服务以及使其正常运行所需的配置。
如果您决定使用ServiceAuthorizationManager路由,check out this MSDN article使用该类。它显示了如何覆盖CheckAccessCore方法并检索消息标题等。如果授权成功,您可以在此处实现调用以记录请求。