Domanda

Sto tentando di convertire un sistema di accesso sviluppato internamente nel controllo di accesso asp.net standard incluso in .net.Voglio che tutte le comunicazioni sul sito Web per un utente non connesso siano in chiaro, ma blocchi tutto in SSL una volta che l'utente effettua l'accesso, inclusa la trasmissione del nome utente e della password.

L'avevo già fatto prima caricando una seconda pagina - "loginaction.aspx" - con un https:prefisso, quindi estraendo il nome utente e la password cercando i controlli della casella di testo corretti in Request.Form.Keys.C'è un modo per fare qualcosa di simile usando i controlli di accesso .net?Non voglio avere una pagina di accesso separata, ma piuttosto includere questo controllo (all'interno di una vista di accesso) su ogni pagina del sito.

È stato utile?

Soluzione

Non sarai in grado di fare semplicemente ciò di cui stai parlando, perché il postback (che è ciò che utilizza il controllo di accesso) sarà qualunque sia la sicurezza della pagina (SSL o non SSL).

La soluzione migliore in questo scenario è utilizzare un IFRAME che contenga una pagina HTTPS (SSL) che contiene solo il controllo di accesso.Potrebbe essere necessario reindirizzare a un'altra pagina dopo l'accesso che ti consenta di uscire dall'IFRAME.

Il piano B sarebbe quello di avere un modulo separato sulla pagina (all'esterno del FORM principale) che ha la proprietà ACTION che punta a un'altra pagina in cui gestisci l'accesso.Dovrai inserire il tuo codice di accesso per gestire l'autenticazione dei moduli.

Altri suggerimenti

Sono riuscito a ottenere questo risultato aggiungendo un evento OnClientClick al controllo del pulsante di accesso e impostandolo sulla seguente funzione javascript.
`

function forceSSLSubmit() 
{

                var strAction = document.forms[0].action.toString();

                if (strAction.toLowerCase().indexOf("http:") == 0) {
                    strAction = "https" + strAction.substring(4);

                    document.forms[0].action = strAction;
                }

        }

`

Non sarai in grado di avere il tuo sito come non SSL, con una casella di accesso su ogni pagina, e quindi inviare nome utente e password tramite SSL.

L'unico modo per raggiungere questo obiettivo è utilizzare frame di qualche tipo.In questo modo l'intera pagina potrebbe essere non SSL, ma il frame di accesso dovrebbe essere SSL.

Il modo usuale per farlo è bloccare l'intero sito con SSL, non preoccuparti di avere il nome utente e la password SSL crittografati e andare su SSL dopo aver effettuato l'accesso, oppure seguire il percorso del frame che ho menzionato sopra.

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