0

我启动了 WCF Data Services 5.6 / EF6 和 WPF 应用程序。用户启动应用程序并显示一个登录屏幕,在那里他输入他的用户名和密码。此信息保存在数据库中,用于验证他的权限、用户组等(特定于应用程序,与 SetEntitySetAccessRule 无关)。

现在,当我对实体执行 CRUD 操作时,服务需要检查用户是否有权执行该操作。

所以我的问题是:如何在每次操作之前查询用户详细信息?是否应该将用户的实例保留在服务器上?(一个以上的用户可以连接到该服务)

4

2 回答 2

0

解决方案是使用添加到每个调用的自定义消息头(您在初始登录后创建一个令牌,然后在每次后续调用中发送该令牌 - 令牌需要某种时间货币和一些额外的属性,以便它可以高度自信地确定来源以避免欺骗)。以下文章描述了您想要在用户身份验证的上下文中执行的操作:

http://www.codeproject.com/Articles/352678/Add-Custom-Message-Header-in-WCF-4-Calls

于 2013-11-13T07:34:05.493 回答
0

WCF 实例化可能是您可以将实例化模式选择为“PerSession”的一种方式。这将使用户的会话保持活动状态。

于 2013-11-13T07:34:37.907 回答