Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente bannato
    Registrato dal
    Jan 2006
    Messaggi
    100

    httphandler for dummies

    premetto che ho poca esperienza con l'ambiente .net

    ho un sito asp stuato su un server che supporta anche .net
    vorrei utilizzare qualche sistema per poter utilizzare alias per i collegamenti alle pagine
    es: "pagina.asp?id=55" -> "titolo-della-pagina.asp"

    facendo una ricerca in internet ho capito che devo utilizzare un httphandler, solo che a causa della mia scarsa esperienza in .net non so esattamente come implementarlo

    pensavo di realizzare un file asp che vada a leggere le corrispondnze tra id e titolo della pagina, mettendole poi in un file xml che sarebbe letto dalla pagina aspx

    potreste indirizzarmi ad una guida per principianti?

  2. #2
    Gestire gli HttpHandlers non è una cosa semplicissima. Si tratta di interfacciarsi con proprietà e metodi molto complessi.
    Sicuramente devi realizzare una pagina ASP che risponde sia intercettando l'ID nel QueryString che anche come URL della pagina.

    Poi, a gestire le richieste Http ci penseranno le classi .Net.

    I passi da seguire:
    1) modificare il file web.config per gestire le richieste Http e farle indirizzare ad una classe specifica della tua applicazione
    2) sviluppare la classe che gestirà queste richieste

    1) Aggiungi al file web.config gli URL che intendi "intercettare":

    codice:
    <compilation>
      <buildProviders>
        <add extension=".asp" type="System.Web.Compilation.PageBuildProvider"/>        
      </buildProviders>      
    </compilation>
    
    <!-- 
    Qui invece vengono intercettati tutti gli URL indicati di seguito.
    In questo caso, ad es., l'url http://www.html.it/Articoli/zofm.aspx viene intercettato e rimandato alla classe devHttpHandler
    -->
    <httpHandlers>
      <add verb="*" path="/Articoli/*.aspx" type="devHttpHandler.HandleIt" />
      <add verb="*" path="/Articoli/*.aspx" type="devHttpHandler.HandleIt" />
    </httpHandlers>
    (attenzione, gestisci il tutto con estensione aspX altrimenti perdi le funzionalità dell'handler)

    2) Sviluppa una semplice classe come questa ed inseriscila nella cartella App_Code (in modo che il framework si occupi automaticamente della compilazione):

    codice:
    using System;
    using System.Web;
    using System.Web.UI;
    using System.Globalization;
    
    namespace devHttpHandler
    {
        public class HandleIt : IHttpHandlerFactory
        {
            public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated)
            {
                // ritorno l'IHttpHanlder
                // I parametri da passare sono:
                // virtualPath (il path della richiesta),
                // inputFile (il percorso fisico del file da richiamare), 
                // context (ritorno quello ricevuto al momento della richiesta)
                return PageParser.GetCompiledPageInstance("/pagina.asp", context.Server.MapPath("/pagina.asp"), context);
            }
    
            public void ReleaseHandler(IHttpHandler handler)
            {
            
            }
        }
    }
    Per maggiori info (non è per far pubblicità!): http://blog.devexperience.net/it/10/...dler_Http.aspx

    Fammi sapere


  3. #3
    Utente bannato
    Registrato dal
    Jan 2006
    Messaggi
    100
    si in effetti è un tantino articolato

    prima di imbarcarmi vorrei fare una domanda
    sono in hosting su aruba, c'è qualche loro limitazione/configurazione che mi impedisca la realizzazione di un httphandler?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    14
    Ho provato in questi giorni la soluzione in vb.net per la rescrittura delle url...con vs2005 tutto OK... giubilo e gioia!
    Pubblico un applicazione di prova sullo spazio testdotnet di aruba e....SORPRESONA la solita e immancabile Security Exception.... ne sento quasi la mancanza se non lavoro con servizi [si fa per dire] Aruba.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.