【问题标题】:Silverlight app for select windows users面向特定 Windows 用户的 Silverlight 应用程序
【发布时间】:2011-02-06 03:34:43
【问题描述】:

我有一个简单的 Silverlight 应用程序托管在公司网络上。但是,我想允许少数选定的 NT 用户访问该网站并限制其余用户。我该如何配置它?

这样的配置也适用于浏览器之外的情况吗?

【问题讨论】:

    标签: c# silverlight iis-6


    【解决方案1】:

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

    关于开箱即用我不知道,因为我从未尝试过,但是一旦您的 SL 用户界面中有一个显示当前用户名的标签,您肯定可以对其进行测试,检查浏览器中的功能是否相同或退出浏览器。希望这会有所帮助...

    【讨论】:

      【解决方案2】:

      您可以做几件事。

      1) 限制对正在调用的 Web 服务的访问 - Davide 的回答很好地涵盖了这一点。

      2) 限制对存在 SL 应用程序的网站的访问,这很容易通过 ASP.NET 和通过 MembershipProvider 对 Windows 身份验证的内置支持来实现。这样,如果用户角色不正确,他们甚至无法加载托管 Silverlight 应用程序的 HTML 页面。这也将阻止他们将应用程序安装为 Out of Browser,因为他们一开始就无法访问它。

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

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

      至于所有这些的实现,我建议查看 WCF RIA Services。它具有强大的身份验证/授权支持,可以简化实现这一点,即使您出于任何原因不想使用 RIA 服务进行数据访问(尽管我也建议这样做,它有助于隐藏 Silverlight 数据的许多异步复杂性访问)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-23
        • 1970-01-01
        • 1970-01-01
        • 2014-09-07
        • 2017-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多