从 Flex 3 安全地访问 .NET Web 服务

Posted

技术标签:

【中文标题】从 Flex 3 安全地访问 .NET Web 服务【英文标题】:Accessing .NET Web Service securely from Flex 3 【发布时间】:2010-09-08 18:22:07 【问题描述】:

我们可以从 Flex/AS3 应用程序成功使用 .NET 2.0 Web 服务。除了 SSL,我们还能如何使安全性更强大(即身份验证)?

【问题讨论】:

【参考方案1】:

如果您使用 Microsoft 技术,您可以构建一个小的 Asp.Net/C# 应用程序,该应用程序会在重定向到正确的 swf 之前要求提供凭据。

这样您可以限制访问并根据用户拥有不同的 swf 文件。

【讨论】:

【参考方案2】:

您应该能够使用 asp.net 的身份验证(例如表单身份验证)而无需付出太多额外的努力。保护 asmx 文件就像保护 aspx 文件一样。那里有大量关于表单身份验证的信息,只需搜索“asp.net forms authentication”

【讨论】:

这不太对。由于 flex/flash swf 文件是在客户端计算机上下载的,因此很容易对它们进行反编译... @Frank - 如果您在操作脚本中保存用户名/密码,那么您需要克服的问题比担心有人反编译您的 swf 还要大。 有一些方法可以在授予对 swf 的访问权限之前验证用户凭据【参考方案3】:

您可以通过使用

装饰您的网络方法来利用 ASP.Net 的内置会话管理

<EnableSession()>

然后,在你的方法中,你可以检查用户是否仍然有一个有效的会话。

【讨论】:

【参考方案4】:

考虑使用 WebOrb 与您的服务进行通信。以下是有关WebOrb's authentication mecahnism 的一些信息。还有一个article on Adobe's developer site on using WebOrb and .Net for authentication。

【讨论】:

【参考方案5】:

如果您正在谈论保护信息通过网络传输,您可以使用 Web 服务扩展 (WSE) 来加密 soap 消息的正文,这样您就不必保护这个频道。这样,消息可以从多个端点传递(即可以转发),并且您不需要多个 https 证书。

如果你说的是autentication,那么你可以在正文或soap标头中使用密码进行表单身份验证(再次加密正文或通道)。或者,保护 web 服务(如果它是一组内部服务)的最简单方法之一是让 IIS 执行此操作,打开 NTLM 并在那里进行身份验证。您可以稍后在管道中使用 HTTPModule 进行授权,该模块会根据人们尝试调用的代码检查人们的凭据。

【讨论】:

以上是关于从 Flex 3 安全地访问 .NET Web 服务的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Web API,从 Flex FileReference 上传时 MIME 多部分流意外结束

web安全入门-搜索引擎信息

在 Web 应用程序 flex 中暂停和恢复下载

从Web浏览器执行命令提示符(安全地)

从 Razor View-MVC3 ASP.NET 中的 Web.config 访问键值

如何使用 Actionscript 3、Flex 4 SDK 和 FlashDevelop 从 .fla 文件访问数据?