Domanda

Ho una singola directory nel mio sito ASP.Net che ho bisogno di avere SSL abilitato. Per tutte le altre directory, non voglio SSL abilitato.

L'utilizzo di IIS, ho controllato il Richiedi un canale protetto (SS) e caselle di controllo di crittografia a 128 bit per la cartella che voglio richiedere SSL.

Ora, quando un utente digita "http: //", per la mia directory sicuro, voglio loro reindirizzare automaticamente a "https: //". Ho provato due approcci, ed entrambi hanno fallito.

Approccio 1: Modificare la pagina Errori di IIS su misura per la directory per il 403; 4 a un URL che punta a: "/Intranet2/SSLRedirect.aspx". Lo SSLRedirect li puntare al sito corretto. Quando lo faccio, ottengo "La richiesta specificata non può essere eseguita dalla corrente pool di applicazioni" errore, anche se l'url è una parte del sito web e ho solo una piscina app per l'intero sito web (non il DefaultAppPool).

Approccio 2: Aggiungi un web.config nella directory in overide il codice di 403 errore. Sembra che questo:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        <customErrors defaultRedirect="../Default.aspx" mode="On">
            <error statusCode="403" redirect="../SSLRedirect.aspx" />
        </customErrors>
    </system.web>
</configuration>

Ma quando faccio questo cambiamento, ho sempre arrivare il default 403.4 definito in IIS.

Qualche suggerimento?

È stato utile?

Soluzione

Approccio 1: Sembra che tu stia scambiato a pensare che si ha un solo app pool configurato per l'intero sito web. Probabilmente avete uno per il sito predefinito e un altro per una directory virtuale si sta lavorando. Le scelte sono o:

a) riconfigurarlo in modo che avete veramente solo una piscina app per l'intero sito,

b) Servire la pagina di errore da una directory che si trova nello stesso pool di app come pagina che genera l'errore

c) modificare il Registro di sistema per chiudere questo errore di riposo: Set IgnoreAppPoolForCustomErrors a 1 in HKLM \ SYSTEM \ CurrentControlSet \ Services \ W3SVC \ Parameters. Vedere http://blogs.msdn.com/b/ rakkimk / archive / 2006/09/01 / 735684.aspx

Approccio 2: Errori personalizzati in web.config vengono utilizzati solo se asp.net sta gestendo l'errore. Credo che IIS non è coinvolgente motore di movimentazione asp.net qui perché il controllo SSL non è riuscito. Quindi questo semplicemente non funzionerà qui.

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