Asp.net mvc Flash和ASP.NET MVC将数据发布到服务器

Asp.net mvc Flash和ASP.NET MVC将数据发布到服务器,asp.net-mvc,flash,Asp.net Mvc,Flash,在发布同样具有Flash组件的ASP.NET MVC HTML表单时,对于安全性和可伸缩性(以及可能的工作级别),您会采取什么样的设计方法,如下面的场景所述 我有一个场景,其中有一个ASP.NET MVC站点和一个需要用户身份验证和授权才能访问的页面(使用ASP.NET表单身份验证)。在那个页面上有一个HTML表单。表单还有一个Flash组件。表单有几个文本字段,Flash组件有二进制数据,需要与HTML表单字段一起提交到服务器。当用户点击HTML表单上的submit按钮时,可以说表单内容和Fl

在发布同样具有Flash组件的ASP.NET MVC HTML表单时,对于安全性和可伸缩性(以及可能的工作级别),您会采取什么样的设计方法,如下面的场景所述

我有一个场景,其中有一个ASP.NET MVC站点和一个需要用户身份验证和授权才能访问的页面(使用ASP.NET表单身份验证)。在那个页面上有一个HTML表单。表单还有一个Flash组件。表单有几个文本字段,Flash组件有二进制数据,需要与HTML表单字段一起提交到服务器。当用户点击HTML表单上的submit按钮时,可以说表单内容和Flash中的二进制数据需要作为一个原子单元的一部分提交

我知道我可以使用HTML/Flash JavaScript桥接通过JavaScript或Flash组件发布表单。我甚至可以同时做这两件事,也许在用户单击submit时从Flash组件发布二进制数据,然后发布HTML表单内容

根据您的经验,发布表单时遇到的阻力最小的方法是什么?考虑到用户身份验证和授权部分,我认为Flash将比HTML付出更大的努力。用户身份验证方面如何?如果页面从Flash发布到服务器,除了标准HTML身份验证表单外,Flash是否还必须对用户进行身份验证

我的Flash二进制数据通常不应大于300KB,通常小于300KB…非常感谢您的任何意见/见解

编辑: 我还模糊地记得,在Flash10.1中,当将二进制数据传输到JavaScript时,ExternalInterface似乎无法正常工作,我是否错了,您可以轻松地将300KB或更多的二进制数据从Flash传输到JavaScript变量,然后将其发送到服务器


谢谢

这是一种方法:

  • 使您的flash组件通过调用javascript函数
  • 使被调用的javascript函数更改表单中的隐藏字段
  • 发布表单时,隐藏字段将向服务器发送所需的值
  • 我想这也是最安全的方式,因为Flash组件不会与服务器通信。您所需要的一切都是标准的、非AJAX表单的帖子

    编辑

    对不起,我想我应该多加注意。。。如果从flash组件发送的数据太多,可能应该直接将其发送到服务器

    不过,您可以使用ExternalInterface来同步整个过程。让Flash调用成为服务器端方法(我会使用它,但您的意见可能会有所不同)。然后.NET将返回一个ID,这意味着它已经接收并保存了二进制数据,以备将来使用。然后调用ExternalInterface将该ID设置为隐藏字段。之后,当HTML发布到服务器时,服务器端操作方法只需要使用发布的ID检索二进制数据

    这里的问题是,您将得到一些二进制数据,这些数据永远不会与任何表单post关联。。。但我想没关系,只是偶尔运行一些“垃圾收集器”脚本


    关于身份验证问题:FluorineFX确实实现了,并且能够检索当前登录的用户。当然,也有一些。

    谢谢Rsena,我理解这种方法,以及如何做到这一点的细节。您是否尝试过使用ExternalInterface将二进制数据传递给JavaScript?“我在这方面运气不太好。”珊普劳德:嗯,明白了。我必须这样做(在我的例子中,这是一个小的用户绘制的图像)。我们所做的是将图像编码为字符串,并在服务器端使用反向算法。不太漂亮,但效果很好。我不知道这种方法是否适用于你的案例。也许你终究需要不同的帖子…:-/谢谢你的设计理念,我会仔细研究的。对FLUENINEFX相对于从Flash客户端调用WCF服务的优缺点有何看法?@Shan Plourde:事实上,我从未使用过WCF,所以我无法进行比较。我想氟更快-您可以使用Flash远程处理或JSON-RPC进行通信,例如,这比SOAP轻得多。好的,我可以使用SOAP或REST方法开始,因为该服务也将在不同的客户端上被长期调用。