如何保护Silverlight应用程序登录屏幕/自定义表单

问题描述:

我敢肯定,必须有一个简单的答案,但我无法弄清楚 -如何保护Silverlight应用程序登录屏幕/自定义表单

我有一个Silverlight 4 OOB应用程序需要登录屏幕/安全。该视图显示了一个LoginView(用户名/密码),然后将详细信息传递给WCF服务并根据数据库进行检查。它会将结果返回给客户,说明他们的详细信息是否有效。这部分工作正常。

我需要一些指导是存储用户登录/验证当前Silverlight会话这一事实的最佳方式。

这是OOB,所以我们不能使用任何网络cookie /会话的东西据我所知。我假设我们必须在线程中存储某种身份,但我需要一些指针。

另一个需要注意的是,我想确保所有其他页面都能检查用户是否已通过身份验证,如果没有,则重定向到登录屏幕。我使用的导航框架,所以我有一个框架 - 这可能会更容易...

任何提示或指针赞赏 - 我只需要一些想法,开始请。

只是存储用户在任何你喜欢的地方被认证的事实 - 我倾向于喜欢Application对象,因为它是一个应用程序范围的设置,但是你可以将你的“IsAuthenticaed”和/或“Roles” 。

看看WCF RIA服务 - 即使你不想使用他们的解决方案,你可以看看它所生成的认证代码,并看到一个很好的现实世界的例子,说明这可以如何工作。

至于重定向如果用户没有登录,我建议在您的框架上使用INavigationContentLoader,它可以在一个中心位置实现此逻辑。查看INavigationContentLoader和认证/授权的主题由大卫投票这两个优秀的帖子:

http://www.davidpoll.com/2010/01/01/opening-up-silverlight-4-navigation-authenticationauthorization-in-an-inavigationcontentloader/

http://www.davidpoll.com/2010/05/10/common-navigation-ui-and-authorization-driven-sitemaps/

+0

感谢奥斯汀 - 我认为有可能是存储会话的更先进的方式(而不是到全局布尔值)。感谢您的链接 - 我会检查出来! AFAIK大卫民意调查是导航框架的实际作者,所以这将是一个很好的开始... – Rodney 2011-01-19 05:46:46