2010-05-27 6 views
5

Il nostro cliente ha l'obbligo di estendere la funzionalità del proprio progetto governativo di grandi dimensioni esistente. È un progetto ASP.NET 3.5 (recentemente aggiornato da 2.0).Visualizzare la pagina Web da un altro sito nella pagina asp

La soluzione esistente è piuttosto un colosso che è quasi impossibile da mantenere, quindi hanno deciso di voler fornire la nuova funzionalità ospitando su un altro sito Web che viene visualizzato all'interno del sito Web esistente.

Per quanto riguarda il modo migliore per farlo, non sono abbastanza sicuro adesso e se ci sono problemi di sicurezza che lo impediscono o che devono essere considerati.

Essenzialmente l'utente accedeva al sito web esistente normalmente e quando si esegue il cliking su un determinato collegamento la pagina si carica normalmente con un qualche tipo di frame o controllo che contiene al suo interno il contenuto della pagina dall'altro sito . IE. Non vogliono semplicemente reindirizzare verso l'altro sito che vogliono mostrarlo incorporato nell'attuale in modo tale che i menu esistenti, ecc. Siano ancora disponibili.

Credo che se le informazioni dovessero essere passate alla pagina incorporata, si farebbe usando le stringhe di query perché non sono sicuro che ci sia un altro modo per farlo.

Qualcuno può darmi alcune indicazioni su dove iniziare a cercare di attuare questo o eventuali insidie ​​dovrei essere a conoscenza.

Grazie

+0

Avete bisogno di essere autenticati per visualizzare il sito? – alejandrobog

+0

si presume che siano già autenticati e aggiungeremo qualche tipo di controllo per garantire che non sia possibile accedere direttamente al nuovo sito anche se sono già stati autenticati. –

+0

iframe o javascript: questi sono gli unici 2 modi in cui sono consapevole. – RPM1984

risposta

2

se i 2 siti sono ospitati dalla stessa rete (bassa latenza tra di loro) è possibile utilizzare il server di stato per la gestione delle sessioni. in questo modo, quando esegui l'autenticazione su un sito, sarai autenticato anche sull'altro e condividi lo stato utente su di essi.

sua piuttosto semplice, nel vostro web di configurazione di ogni server web che ci si sceglie il server di stato (che potrebbe essere situato su uno dei server web)

<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

creare una directory virtuale sotto il dominio primario. Se il tuo dominio è www.mydomain.com, crea una directory virtuale www.mydomain.com/site e porta la nuova applicazione del sito web nella directory/site virtual. Questo era il collegamento dovrebbe diventare molto utile. Con questo l'applicazione di directory virtuale manterrà anche tutti i cookie di dominio impostati dal dominio principale.

+0

Non sono sicuro che questo risponda alla mia domanda. Ero più interessato in termini di visualizzazione di una pagina all'interno di un'altra e passando almeno una stringa di query alla pagina incorporata. Inoltre cosa intendi con la tua ultima frase? Grazie –

1

Suggerirei di rendere il secondo sito Web esattamente come il primo o almeno di utilizzare la stessa MasterPage, in modo da poter reindirizzare da un sito a un altro senza alcuna differenza visiva.

Se il tuo sito richiede l'autenticazione, considera che è necessario fare qualcosa per impedire all'utente di effettuare il login due volte, un'opzione potrebbe essere quella di inviare un token crittografato al secondo sito.

Tutto questo se si è costretti ad avere un secondo sito, se non basta usare una directory virtuale

0

vorrei utilizzare un iframe per incorporare che nel sito all'interno dell'applicazione esistente. Basta impostare l'attributo "src" e passare tutti i parametri della stringa di query che l'altro sito deve eseguire correttamente.

È comunque possibile passare i dati sensibili nella stringa di query, tuttavia, avrebbe fatto in modo di cifrare prima di inviarlo in.

So che non è la soluzione più elegante, ma ottiene il lavoro fatto. E dalla descrizione dell'app esistente, non sembra come il vostro cliente si prende cura di "eleganza" :)

Spero che questo aiuti