5 messaggi dal 04 agosto 2017
Salve a tutti,

premetto che sono uno sviluppatore prevalentemente di applicativi Win32/64, sviluppo anche applicativi web ma in misura minore quindi alcuni meccanismi non li conosco ancora bene.
In questo momento sto sviluppando un'applicazione web che visualizza dei file PDF archiviati in un DB SQL.
In pratica è un portale su cui gli utenti, previa autenticazione, possono consultare i propri documenti.
L'applicazione girerà su di un'intranet aziendale e IIS.
L'autenticazione prevede una pagina di login in cui l'utente inserisce le proprie credenziali che verranno verificate o tramite Active Directory oppure tramite il software leggendo username e password da un'apposita tabella sul DB (criptata) nel caso in cui non vi sia un controller AD.
Dopo l'autenticazione (se autenticato), quando si apre la pagina principale del software, passo dei parametri (criptati) tramite l'url ed, inoltre, ci sono alcune variabili globali che contengono i parametri di configurazione del software (connection string al DB+ vari flag tipo visualizza logo, utilizza invio email ecc.).
La connection string al DB ed i vari parametri di configurazione vengono valorizzati da una pagina "default.aspx" che non visualizza nulla ma controlla alcuni parametri come, per esempio, la registrazione del software e, se tutti i controlli hanno esito positivo, carica la "login.aspx".
Se l'autenticazione ha esito positivo, come dicevo in precedenza, la pagina principale e tutte le varie "sottopagine" dell'applicativo leggono dall'url alcuni parametri (criptati) che identificano l'utente ed il suo profilo (se è un semplice user visualizzerà solo determinate pagine, se è un admin tutte le pagine).
Ed ecco il problema: se copio l'url dalla barra degli indirizzi del browser, chiudo il browser, lo riapro ed incollo l'url il programma apre direttamente la pagina principale dell'applicativo come se fosse autenticato.
Nella mia ignoranza pensavo che le variabili globali venissero cancellate alla chiusura del browser e quindi, tentando di aprire una pagina senza passare prima dalla "default.aspx" (dove valorizzo queste variabili), la pagina non potesse poi funzionare in quanto la connection string al DB, pensavo, essendo vuota non permetteva all'applicativo di funzionare correttamente.
Per cui vorrei sapere...come si può gestire questa cosa?
Esiste un sistema per cui se chiudo la pagina si "azzera" una qualche variabile in modo che se non apro la "default.aspx" le altre pagine dell'applicativo non funzionino?
Grazie.
Saluti,


Roberto
Modificato da washburn il 23 maggio 2019 11:45 -
43 messaggi dal 20 luglio 2011
se chiudi la pagina e cancelli i cookie se riapri la pagina sei ancora autenticato?

"Imparare è un'esperienza, tutto il resto è solo informazione." -Albert Einstein-
5 messaggi dal 04 agosto 2017
Grazie per la risposta innanzitutto.
Nel frattempo ho fatto alcune modifiche al codice: ho aggiunto una variabile di sessione che viene impostata a "1" se l'utente si è loggato con successo.
Questa variabile, poi, viene letta da ogni pagina e se viene trovata a "0", ricarica la pagina di login.
Dalle prove che ho fatto ho notato che:

1) se ho solo una finestra di un browser aperta, mi loggo, copio l'url, chiudo il browser, lo riapro e incollo l'url correttamente mi richiede il login

2) se ho già il browser aperto, apro una nuova scheda, mi autentico, copio l'url, chiudo la scheda e ne riapro un'altra, mi riapre la pagina "post" login quindi come se fossi già autenticato.
Se chiudo completamente il browser, lo riapro ed incollo l'url mi rimanda alla pagina di login.

Quindi sembra che finchè c'è il browser aperto, in qualche modo mantiene l'informazione.
Anche se ho il browser aperto ed apro un'ulteriore finestra del browser (non una nuova scheda), finchè non chiudo tutto mantiene l'informazione che l'utente è loggato.
Ho provato con Firefox, sia aprendo il browser in modalità "normale" sia in "navigazione anonima".
E' un problema di cookie?


Roberto

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.