2011-02-05 25 views

回答

0

你可以做几件事情。

1)限制访问这个网络服务 - 大卫的答案涵盖了这个很好。

2)限制访问SL应用程序所在的网站,这很容易使用ASP.NET和通过MembershipProvider对Windows身份验证的内置支持。这样,如果用户不适合正确的角色,用户甚至无法加载承载Silverlight应用程序的HTML页面。这也会阻止他们将应用程序安装为浏览器外,因为他们永远无法到达它。

3)在应用程序的OOB模式下(当Application.Current.IsRunningOutOfBrowser为true时),在启动时调用Web服务验证用户是否有正确的角色 - 如果不是,应用程序可以简单地显示“未经授权“的视觉和不显示真正的应用程序功能。

这样,如果用户曾经担任角色并安装了应用程序OOB,但之后又失去了该权限,他们仍然无法使用该应用程序。

至于执行这一切,我建议看看WCF RIA服务。它具有很好的身份验证/授权支持,即使您不希望因为任何原因而使用RIA Services进行数据访问,也应该简化实现此操作的过程(尽管我也建议这样做,它有助于隐藏Silverlight数据的大量异步复杂性访问)。

1

您应该在IIS网站或虚拟目录配置中启用集成Windows身份验证。在此之后,您可以随时携带User.Identity和User.Principal对象并将它们转换为WindowsIdentity和WindowsPrincipal,并检查当前用户是否处于某个角色(又名Windows组)或他/她的用户名...

开箱即用我不知道,因为我从来没有尝试过,但是一旦您的SL用户界面中显示了当前用户名的标签,就可以测试它,检查浏览器中的功能是否相同或者在浏览器之外。希望这有助于...

相关问题