Tags标签 网战地图
当前位置: 主页 > 网站建设 > silverlight教程 >

Silverlight安全性-保护您的Silverlight应用程序的安全(3)

2012-04-09 09:52 [silverlight教程] 来源于:
导读:ASP.NET 授权 在您的用户通过身份验证后,请务必确保只有他们才能尝试调用服务。 在 ASP.NET 应用程序中,普 通 WCF 服务和 WCF 数据服务均以 .svc 文件表示。 本示例中,将在 IIS 中通过 ASP.NET 来承载服务 ,我

ASP.NET 授权

在您的用户通过身份验证后,请务必确保只有他们才能尝试调用服务。 在 ASP.NET 应用程序中,普 通 WCF 服务和 WCF 数据服务均以 .svc 文件表示。 本示例中,将在 IIS 中通过 ASP.NET 来承载服务 ,我将演示如何使用文件夹确保对服务的安全访问。

采用这种方式保护 .svc 文件的安全有点令人迷惑不解,因为默认情况下,对此类文件的请求实际上 会跳过大多数 ASP.NET 管道,从而绕过授权模块。 因此,为了能够利用许多 ASP.NET 功能,您必须启 用 ASP.NET 兼容性模式。 在任何情况下,WCF 数据服务都会强制要求您启用它。 在您的配置文件内进 行简单的切换即可完成任务:

<system.serviceModel>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
<system.web>
  <authorization>
  <deny users="?"/>
  </authorization>
</system.web>

启用 ASP.NET 兼容性后,可防止未经身份验证的用户通过使用 web.config 文件的授权部分(如上一 代码段所示)进行访问。

当使用窗体身份验证时,开发人员必须认真考虑站点的哪些部分需要可访问,即使是对于未经身份验 证的用户也是如此。 例如,如果所有部分均仅限于经过身份验证的用户访问,那么未经身份验证的用户 将如何登录?

通常,创建一个支持您的基本授权要求的文件夹结构是最简单的方法。 在本示例中,我已经创建了一 个包含 MyWcfService.svc 和 MyWcfDataService.svc 文件的“Secured”文件夹,并且已经部署了一个 web.config 文件。 在图 2 中,您可以看到文件夹结构,上一代码段显示了 web.config 文件的内容。

图 2 包含 Web.config 文件的 Secured 文件夹

请注意,应用程序的根必须允许匿名访问,否则用户无法到达登录页面。

对于使用 Windows 身份验证的站点,在这一点上可能稍微简单一些,因为身份验证是在用户到达应用 程序内所含的资源之前进行的,因此不需要具体的登录页面。 实际上,使用此方法可以采用更加详细的 方式限制对服务的访问,从而只允许特定的用户或角色组访问资源。 

此示例在某种程度上实现了授权,但是对于大多数方案而言,单独的文件夹级授权过于粗糙,难以依 赖。

(编辑:)

本文标签:
网友评论

栏目列表

推荐文章