Flash и ASP.NET MVC для публикации данных на сервере - PullRequest
1 голос
/ 27 января 2011

Какой подход к дизайну вы бы выбрали для обеспечения безопасности и масштабируемости (и, возможно, уровня усилий) при публикации HTML-формы ASP.NET MVC, в которой также есть компонент Flash, как описано в приведенном ниже сценарии?

У меня есть сценарий, где есть сайт ASP.NET MVC и страница, для доступа к которой требуется аутентификация и авторизация пользователя (с использованием аутентификации форм ASP.NET).На этой странице есть HTML-форма.Форма также имеет компонент Flash.Форма имеет несколько текстовых полей, а компонент Flash содержит двоичные данные, которые необходимо отправить на сервер в тандеме с полями формы HTML.Когда пользователь нажимает кнопку «Отправить» в форме HTML, содержимое формы и двоичные данные из Flash необходимо отправить как часть одного атомного блока, так сказать.

Я знаю, что могу использовать HTML /Flash JavaScript-мост для отправки формы либо через JavaScript, либо через Flash-компонент.Я мог бы даже сделать и то и другое, возможно, опубликовать двоичные данные из компонента Flash, когда пользователь нажимает кнопку «Отправить», а затем опубликовать содержимое HTML-формы после этого.

Исходя из вашего опыта, каким подходом будет путь наименьшего сопротивления для публикации формы?Рассматривая вопросы аутентификации и авторизации пользователей, я полагаю, что Flash потребует больше усилий, чем HTML.Как насчет аспекта аутентификации пользователя?Если страница, отправленная из Flash на сервер, должна ли Flash также проверять подлинность пользователя в дополнение к стандартной форме проверки подлинности HTML?

Мои двоичные данные Flash обычно не должны превышать 300 КБ, часто меньше ... любые мнения / идеи очень ценятся!

РЕДАКТИРОВАТЬ: Я также смутно помню, что с Flash 10.1, ExternalInterface казалосьне работает правильно при передаче двоичных данных в JavaScript, я ошибаюсь с этим, и что вы можете легко перенести 300 КБ или более двоичных данных из Flash в переменную JavaScript, которая затем отправляется на сервер?

Спасибо!

1 Ответ

2 голосов
/ 27 января 2011

Это один из способов сделать это:

  1. Заставьте ваш flash-компонент вызывать функцию javascript через ExternalInterface.call () .
  2. Заставить вызываемую функцию javascript изменить скрытое поле внутри формы.
  3. Когда форма публикуется, скрытое поле отправит желаемое значение на сервер.

Полагаю, это также самый безопасный способ - поскольку компонент Flash не связывается с сервером. Все, что вам нужно, это стандартная, не AJAX-форма.

Редактировать

Извините, я полагаю, мне следовало уделить больше внимания ... Если из флэш-компонента отправляется слишком много данных, возможно, вам следует отправить его непосредственно на сервер.

Тем не менее, вы можете использовать ExternalInterface для синхронизации всего процесса. Сделайте так, чтобы Flash вызывал метод на стороне сервера (для этого я бы использовал FluorineFX , но ваше мнение может отличаться). Затем .NET вернет идентификатор, означающий, что он получил и сохранил двоичные данные для будущего использования. Затем вызовите ExternalInterface, чтобы установить этот идентификатор в скрытое поле. После этого, когда HTML-файл публикуется на сервере, метод действия на стороне сервера просто должен извлечь двоичные данные, используя опубликованный идентификатор ...

Проблема здесь в том, что у вас получатся двоичные данные, которые никогда не будут связаны ни с каким постом формы ... Но это нормально, я думаю, просто время от времени запускайте некоторый скрипт "сборщик мусора".

О проблеме аутентификации: FluorineFX реализует .NET аутентификацию , и он может извлечь текущего вошедшего в систему пользователя. Конечно, есть некоторые проблемы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...