1

我有一个默认配置服务(我相信这是每个​​会话)。我对 WCF 初始化策略有点困惑。我已经阅读了很多关于不使用构造函数的建议,但就我而言,从每个会话更改为每个请求模式似乎很直观。

基本上,我在 HTTP 标头中传递了所有公共接口方法所需的信息,因此在执行的单个方法中解析它们是有意义的。再说一次,我一直希望实际上有更好的方法来做到这一点,因为我想使用每会话模型。

如何在实际方法之前执行此类标头解析代码?此外,假设我设法做到了 - 有没有办法在单一方法上禁用这种行为?

[编辑]另外,说它在每个会话的基础上工作。我可以相信相同的初始化,当客户端再次调用时,正在为相同的客户端提供服务(我假设这是每个会话的含义,但安全性在我的服务中很重要,所以我宁愿确定)。

4

1 回答 1

2

实现 IClientMessageInspector 接口以在每次调用时发送您的自定义身份验证信息。然后实现 IDispatchMessageInspector 以验证服务端的标头。在这里,您可以找到有关WCF 中消息检查器的更多信息。

消息检查器还应该包含操作信息,以便您可以使用它来允许匿名访问某些服务方法。

即使您使用每会话实例模式,我个人也会在每次调用时验证安全数据。只要您的身份验证机制不需要太多时间,它似乎更容易实现和维护,因为它更容易实现和维护。

你是对的,相同的服务对象用于会话。

希望能帮助到你!

于 2013-06-17T09:55:10.920 回答