Отобразите веб-страницу от другого сайта в странице ASP

У нашего клиента есть требование для расширения функциональности их существующего большого правительственного проекта. Это - ASP.NET 3.5 (недавно обновленный от 2,0) проект.

Существующим решением является настоящая громадина, которая почти неудобна в сопровождении, таким образом, они решили, что хотят обеспечить новую функциональность путем хостинга его на другом веб-сайте, который показывают в существующем веб-сайте.

Относительно того, как это является лучшим, чтобы быть сделанным, я не совсем уверен прямо сейчас и если существуют какие-либо проблемы безопасности, предотвращающие его или который нужно рассмотреть.

По существу пользователь вошел бы в систему существующего веб-сайта, столь же нормального и при нажатии на определенную ссылку, которую страница загрузит как нормальный некоторым кадром или управлением, которое имеет в нем содержание страницы от другого сайта. IE. Они не хотят просто перенаправлять на другой сайт, они хотят показать, что он встроил в текущем, таким образом, что существующие меню и т.д. все еще доступны.

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

Может любой давать мне некоторые подсказки по тому, где запустить при том, чтобы смотреть на реализацию это или любые потенциальные ловушки, я должен знать.

Спасибо

5
задан Daniel Powell 27 May 2010 в 05:42
поделиться

5 ответов

если 2 сайта размещены в одной сети (низкая задержка между ними), вы можете использовать сервер состояний для управления сеансом. Таким образом, когда вы аутентифицируетесь на одном сайте, вы также будете аутентифицированы и на другом, и поделитесь между ними пользовательским состоянием.

это довольно просто, в вашей веб-конфигурации каждого веб-сервера вы должны указать на государственный сервер (который может быть расположен на одном из веб-серверов)

<configuration>
  <system.web>
    <sessionState mode="StateServer"
       stateConnectionString="192.168.1.103:42424"
    />
  </system.web>
</configuration>

http://en.csharp-online.net/ ASP.NET_State_Management% E2% 80% 94Storing_Session_State_out_of_Process

2
ответ дан 15 December 2019 в 00:52
поделиться

Я бы предложил сделать второй сайт точно таким же, как первый, или, по крайней мере, использовать ту же MasterPage, чтобы вы могли перенаправлять с одного сайта на другой без каких-либо визуальных различий.

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

Все это если вы вынуждены иметь второй сайт, если нет, просто используйте виртуальный каталог

1
ответ дан 15 December 2019 в 00:52
поделиться

создайте виртуальный каталог под основным доменом. Если ваш домен www.mydomain.com, то создайте виртуальный каталог www.mydomain.com/site и перенесите новое приложение сайта в виртуальный каталог /site. Это связывание должно стать очень важным. При этом приложение с виртуальным каталогом также сохранит все доменные cookies, установленные основным доменом.

1
ответ дан 15 December 2019 в 00:52
поделиться

Я бы использовал iFrame для встраивания этого сайта в существующее приложение. Просто установите атрибут "src" и передайте любые параметры строки запроса, необходимые другому сайту для корректного отображения.

Вы все еще можете передавать конфиденциальные данные в строке запроса, однако перед отправкой они будут обязательно зашифрованы.

Я знаю, что это не самое элегантное решение, но оно позволяет решить поставленную задачу. А судя по описанию существующего приложения, не похоже, что ваш клиент заботится об "элегантности" :)

Надеюсь, это поможет

.
0
ответ дан 15 December 2019 в 00:52
поделиться

Вы можете использовать что-то вроде UFrame. Я использовал его пару раз и, кажется, он неплохо справляется со своей задачей...

"goodness of UpdatePanel and IFRAME combined"

http://www.codeproject.com/KB/aspnet/uframe.aspx

0
ответ дан 15 December 2019 в 00:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: