我只使用WCF进行数据服务(即应用程序内部,非常精简,没有会话状态等),以保持我们的Web应用程序的可扩展性.
我们需要为我们当前正在传递的每个服务调用提供一些公共属性.对于每个调用具有单个请求对象并不理想,因为超出这些常见属性,其余的是非常多样的并且在开发期间经常变化.
目前我正在考虑使用自定义标头和clientmessageinspector来设置值.对于这种情况,这是最简单的推荐方法还是有更好的方法?
更多详情..
下面的红点是我不确定正确的方法(或如何去做).

发送了什么
发送的数据是一组简单的id(3或4用于userid,clientid等) - 所有这些ID都会对安全性和性能产生影响(在某些情况下,它决定了要访问的数据库).
我们还将扩展它以获得更复杂的权限 - 不需要Windows工作者.
调用者将是一个Web应用程序,它们来自会话对象,或者是一个手动填充这些应用程序的Windows服务工作者.
当前的思考
理想情况下,调用者工作流的getinstance会自动使用会话对象填充这些属性,还是使用windows服务调用(不同的构造函数?)手动填充.
然后,我们将确保这些参数始终可用,无需任何考虑或在整个代码中没有常量引用,以便在调用它的每个函数上构造契约.我们目前有很多服务调用(由于应用程序的规模/复杂性,而不是由于糟糕的工程:)),因此这扩展到复杂的权限,以自我文档的方式强制执行规则变得有点困难.
从概念上讲,会话是你在应用程序中处理这个问题的地方,但服务实际上只是一个数据访问层(具有视图映射,页面调度和来自存储库调用的最后调用安全性)所以我们不需要那种重复或复杂性,只包括要包含在查询中的关键标识和权限字段.
问题
这感觉非常像我们应该对调用的标题做的事情,因为我们总是需要这些字段,但我不确定set和get应该位于端点和客户端接口的生命周期中的哪个位置.我也很高兴错了.