Отображение веб-страницы с другого сайта на странице asp - PullRequest
5 голосов
/ 27 мая 2010

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

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

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

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

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

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

Спасибо

Ответы [ 5 ]

2 голосов
/ 09 июня 2010

если 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

1 голос
/ 27 мая 2010

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

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

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

1 голос
/ 27 мая 2010

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

0 голосов
/ 09 июня 2010

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

"Совершенство UpdatePanel и IFRAME в сочетании"

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

0 голосов
/ 08 июня 2010

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

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

Я знаю, что это не самое элегантное решение, но оно выполняет свою работу. И из описания существующего приложения не похоже, что ваши клиенты заботятся о «элегантности»:)

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

...