Domanda

Abbiamo una vasta sito ASP classico, e stiamo cercando di aggiornare a ASP .Net (molto probabilmente la versione più recente). Ovviamente l'aggiornamento di tutte le pagine in una volta sarebbe un compito leviatano, quindi stiamo solo cercando di scrivere nuove pagine (e riscritture di pagina) in ASP .Net in un primo momento.

Ci sono due ostacoli a questo modo:

  1. Non ho idea di come accedere ai dati classici di sessione ASP in ASP .Net. Questo avrebbe solo essere impostato una volta, come non è mai modificato da qualsiasi pagina diversa dalla pagina di login. Preferirei avere per apportare modifiche minime al classico ASP pagina di login, ma questo è solo una piccola preferenza.

  2. Le sessioni ASP e ASP .Net avrebbe dovuto timeout, allo stesso tempo, per mantenere la differenza di versione senza soluzione di continuità.

Si poteva offrire alcun aiuto, per favore?

Grazie in anticipo.

È stato utile?

Soluzione

Abbiamo affrontato lo stesso compito (non divertente). Dal momento che la sessione Asp.Net e la sessione Asp non possono essere condivisi, abbiamo utilizzato una combinazione di metodi, ogni adeguata alla situazione.

  • In alcuni casi, abbiamo usato i biscotti al posto della sessione.
  • In altri, abbiamo istituito forme distacco automaticamente in modo che se le informazioni sulla sessione di un utente è stato fissato in una pagina ASP classico, dopo la sessione di informazioni è stato istituito, abbiamo reindirizzato a una pagina di Asp.Net con la scritta nei parametri stringa di query e usato quelli per impostare le stesse variabili di sessione per Asp.Net. Poi, una volta che la pagina Asp.Net impostare le stesse variabili, la pagina ha fatto un redirect a qualsiasi pagina di pagina di login originale precedentemente puntato. Lo stesso ha lavorato in senso inverso.

Così, nel secondo scenario, un flusso esempio sarebbe cambiato da:

  

utente tenta di accedere ad alcune protetta   pagina di contenuto -> reindirizzato il login   Page -> log in -> informazioni per la sessione del   in base al successo di login -> reindirizzato   torna al contenuto della pagina.

a

  

utente tenta di accedere ad alcune protetta   pagina di contenuto -> reindirizzato il login   Page -> log in -> informazioni per la sessione del   in base al successo di login -> reindirizzato   ad una pagina .net, passando lungo login   credenziali, ecc -> gruppi di pagine aspx   informazioni di sessione e poi subito   reindirizza indietro al contenuto della pagina.

Sapevamo che era un hack, ma ha funzionato nel breve termine fino a quando siamo riusciti a ottenere i siti tutti convertiti.

Altri suggerimenti

Ci potrebbe essere un modo migliore di fare questo usando le impostazioni di IIS più recenti (devo ammettere che non ho mantenuto aggiornati su quali nuove chicche IIS7 può fare). Ma si potrebbe fare un XMLRequest dalla pagina di login ASP ad una pagina ASP.Net. Si potrebbe o passare attraverso le impostazioni necessarie nei dati POST o avere la pagina di .net popolano i dati della sessione in sé se la logica è abbastanza semplice. La pagina di .net sarebbe poi tornare una sessione .net id in un cookie, è necessario impostare questo nella collezione utenti di cookie ASP in modo che l'utente ha sia una .net e Classic ASP cookie di sessione.

Questo sarebbe farlo.

ho implementato questo un paio di anni fa, utilizzando un database.

Microsoft ha una bella buon articolo su di esso, anche se è un po 'vecchio, a questo punto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top