Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [2.0-.NET] Web.config, multiple locations ed errori personalizzati

    Ciao a tutti,

    ho un applicazione con frontend pubblico e backoffice privato.
    Il frontend è accessibile senza password, mentre il backoffice deve essere invece acceduto con username e password.
    Vorrei poter mostrare una differente pagina di errore, una per il frontend e una per il backoffice, ma non ci riesco.

    Finora nel web.config ho fatto così:

    codice:
    <system.web>
    	<customErrors defaultRedirect="ErrorPage.aspx" mode="On" />   
    	<authentication mode="Forms">
    		<forms name="AuthCookie" loginUrl="admin/login.aspx" protection="All" defaultUrl="admin/default.aspx" cookieless="AutoDetect" timeout="30"/>
    	</authentication>
    	<authorization/>
    	<sessionState timeout="40" />
    </system.web>
    <location path="admin">
    	<system.web>
    		<customErrors defaultRedirect="AdminErrorPage.aspx" mode="On" />   
    		<authorization>
    			<deny users="?"/>
    		</authorization>
    		<trust level="Full" originUrl="http://test.myghost.it/ced/.*"/> 
    	</system.web>
    </location>
    Ma a quanto pare il secondo <customErrors> se lo dimentica...
    Sapreste aiutarmi ?
    Grazie!
    www.magimax.it - Servizi per l'evoluzione digitale delle imprese
    My blog: zerointeractive.wordpress.com

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Che io sappia, la pagina di errore puo' essere soltanto una.
    L'alternativa e' farlo a mano. Ad ogni exception di quell'area, un redirect verso la seconda pagina d'errore.

  3. #3
    Per gestire pagine differenti pui inserire questo nel web.config sezione system.web:
    codice:
     <customErrors defaultRedirect="error.aspx" mode="On">
        <error statusCode="404" redirect="error.aspx?mode=404" />
        <error statusCode="403" redirect="error.aspx?mode=403" />
      </customErrors>
    Io ho usato una sola pagina che cambia messaggio controllando il parametro mode in querystring .

  4. #4
    Beh non è proprio quello che mi serve: io parlavo di 2 pagine di errore diverse (una per il sito, l'altra per l'admin)....

    grazie lo stesso...
    www.magimax.it - Servizi per l'evoluzione digitale delle imprese
    My blog: zerointeractive.wordpress.com

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Basta giocare un pò con la variabile d'ambiente

    codice:
    Request.ServerVariables("PATH_TRANSLATED")
    In ogni pagina, vedendo se e' nella 'zona' di admin o no. E memorizzandola magari in sessione.
    (Usare il referer e' piu' complesso, non sono mai riuscito a farlo funzionare a dovere, non so perchè).

    .....E facendo comportare diversamente poi la pagina di errore ErrorPage.aspx secondo la 'zona' da cui proviene l'eccezione.

  6. #6
    Ho letto in giro che è possibile creare una serie di web.config in sttocartelle, cosicchè tutte si comportino come "indipendenti", ma non riesco a farlo funzionare. Mi da un errore (ho dovuto accannare lo sviluppo) del tipo "non si può sovrascrivere tale direttiva" etcc...
    L'obiettivo è "separare" 2 applicazioni "figlie" seppure convivano nella stessa applicazione madre e presentare sti 2 maledetti errori.
    Tradotto in cartelle: <root> con il suo web.config e <root>/admin che ne ha un altro.
    Sono bloccato... avete idee??
    www.magimax.it - Servizi per l'evoluzione digitale delle imprese
    My blog: zerointeractive.wordpress.com

  7. #7

  8. #8
    Ciao DJCiko,

    sì la tua risposta l'ho letta e putroppo non mi aiuta molto: in effetti non voglio mischiare capre e cavoli, vale a dire.. se devo identificare l'applicazione a cui appartiene l'errore tramite una ricerca su stringhe, beh è un po' una soluzione "sporca" che non mi piace. E poi non permette il "decoupling" a cui sto puntando: le applicazioni dovrebbero in un certo modo "conoscersi" (per lo meno il nome di cartella) per fare il dispatching alla propria pagina d'errore.
    Se invece c'è la possibilità (come in Coldfusion ad esempio) di utilizzare un file di configurazione per ciascuna sottocartella, allora la trovo una soluzione molto più elegante.

    Mi sembra assai strano che una piattaforma come .NET non permetta di gestire 2 sottocartelle come 2 applicazioni separate con 2 pagine di errore indipendenti... bah...

    Attendo consigli...

    Ciao a tutti,

    ZR
    www.magimax.it - Servizi per l'evoluzione digitale delle imprese
    My blog: zerointeractive.wordpress.com

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    non si può sovrascrivere tale direttiva
    ...non e' una bugia.

    In alternativa, --mi sembra-- che per ogni pagina puoi specificare una pagina d'errore. Ma non so chi 'vince'. Se la pagina oppure il web.config. Io ne ho sempre utilizzata una sola (ed a volte neanche quella).

    http://www.aspdotnetcodes.com/Asp.Ne...irectives.aspx (punto M)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.