WCF调用中的用户相关信息

时间:2016-02-25 08:15:56

标签: c# wcf

我们在服务器端有一个WCF的客户端 - 服务器架构。所有WCF都是每次通话;基本上每个WCF方法都是一个事务脚本。调用WCF - 方法时,客户端会传递一些身份验证信息(简单来说,就是用户ID)。逻辑层中的所有地方都需要此ID(以及其他一些与用户相关的信息),以检查从DB中提取某些对象的权限,以适当的语言回答等等。

目前,当请求到达时,我们将所有这些信息打包到一个“RequestBag”对象中央,并将其传递给逻辑中的类。然而,这导致它几乎无处不在。

有更好的方法吗?基本上我想要做的是调用一些静态方法并说出GetCurrentUserState(),它会给我与当前WCF调用的上下文相关的数据。但是怎么做呢?线程ID不是一个选项,因为某些线程可以启动来执行某些任务。 MSDN说

  

“没有与WCF会话关联的常规数据存储”

。这是否意味着在任何地方传递我的对象实际上是一种方法吗?

1 个答案:

答案 0 :(得分:0)

也许这个问题不是以最好的方式提出的,因为我没有得到很多反馈。无论如何,如果smb其他发现了这个问题,那么这就是我的问题Where to store data for current WCF call? Is ThreadStatic safe?

实际上已回答的主题。

所以我最终继承了MyContext:IExtension<OperationContext>并将我的用户状态放在那里。我可以在整个应用程序中以MyContext.Current.MyUserState的形式访问它。