WPF应用程序中的WCF数据服务安全性

时间:2011-11-05 14:23:49

标签: wpf wcf authentication dataservice

我正在开发一个解决方案,我有一个使用WCF DataService的WPF项目,该项目位于另一个ASP .NET项目中以访问数据。
我需要提供一定程度的安全性,以确保只有经过身份验证的用户才能访问该服务。在网上冲浪后,我试图完成这一切。实现它的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

我过去这样做过,WCF的Login方法会创建一个用户对象,为用户对象分配一个令牌(在我的例子中,它是一个GUID),并在内部将它存储在WCF服务器上AuthenticatedUsers列表。

任何其他WCF调用都需要将令牌作为参数。它将检查用户是否存在于具有该令牌的AuthenticatedUsers列表中,如果没有具有该令牌的用户,则会返回错误。一个额外的好处是我总是知道谁做了WCF调用而不需要他们传递用户ID。

我还在服务器上存储了一个LastActivity DateTime和User对象。每个WCF调用都会刷新此值,并且在WCF服务器上提供AuthenticatedUsers列表至少有一个值,在服务器上运行Timer会检查AuthenticatedUsers LastActivity值并删除用户已超过20分钟无效。