97 messaggi dal 04 ottobre 2004
EUREKA!!!!!!!!!!!!

Ho trovato l'errore, in pratica nel codice:

string testo=System.Text.Encoding.Default.GetString(buffer,offset,count); 
buf.Append(testo); 
if (testo.ToLower().IndexOf("</html>")!=-1) 
{ 
_sink.Write(System.Text.Encoding.Default.GetBytes(Modifica(buf.ToString())),0,testo.Length); 
} 



Quando viene lanciato il metodo Write: _sink.Write(....)

come lunghezza viene passato testo.length, ma testo viene passato in ingresso a modifica(), in uscita il mio ritorno era più lungo del testo in ingresso e quindi veniva troncato.

ora ho messo:
string strTmp = Modifica(buf.ToString());
_sink.Write(System.Text.Encoding.Default.GetBytes(strTmp),0,strTmp.Length);


e funziona tutto correttamente.
grazie per l'aiuto escusa il dsturbo

ciao Daniele
97 messaggi dal 04 ottobre 2004
EUREKA!!!!!

Ho trovato, in pratica sulla _sink.Write(...) come length mettevi il testo in ingresso alla funzione modifica e non il risultato della modifica stessa. Tu tagliavi pezzi di codice e quindi la lunghezza del testo di uscita era minore di quella in entrata e non si verificava alcun taglio. Io invece aggiungevo testo e quindi mi taglaiva via del codice-

Ho risolto così:
string strTmp = Modifica(buf.ToString());
_sink.Write(System.Text.Encoding.Default.GetBytes(strTmp),0,strTmp.Length);


grazie ancora e scusa il disturbo
Daniele
37 messaggi dal 18 settembre 2003
Molto interessante e utile, ma...è possibile accedere al sessionstate dal metodo write del filtro?
Ho la necessità di modificare l'output della mia pagina prelevando dei valori dalla sessione, ma l'oggetto httpcontext.current.session è sempre nothing. Preciso che applico il filtro all'interno dell'evento PreRender della pagina.
Grazie.

Giuseppe

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.