Per attenuare gli aspetti "negativi" della natura stateless del protocollo HTTP, ASP.NET ha introdotto un meccanismo per conservare lo stato tra le diverse richieste, chiamato ViewState.
Ad occuparsi di persistere le informazioni contenute nel ViewState nella versione 2.0 di ASP.NET sono le classi derivate dalla classe astratta PageStatePersister.
Il meccanismo predefinito di persistenza mantiene lo stato sotto forma di una stringa codificata in base64 e memorizzata in campo nascosto nella pagina, utilizzando la classe HiddenFieldPageStatePersister.
Anche se adeguato nella maggior parte dei casi, in scenari particolari, con limitate capacità di banda o per dispositivi che non supportano campi nascosti, queste informazioni possono essere memorizzate nella sessione corrente utilizzando SessionPageStatePersister.
Per prima cosa realizziamo un classe derivata da PageAdapter, eseguiamo l'override del metodo GetStatePersister() .
[AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
namespace ASPItalia.com
{
public class MyPageAdapter : System.Web.UI.Adapters.PageAdapter
{
public override PageStatePersister GetStatePersister()
{
return new SessionPageStatePersister(this.Page);
}
}
}Essendo il sistema di persistenza del ViewState legato all'adaptive rendering ed alle capacità del client, è necessario aggiungere nella cartella App_Browsers un file con le seguenti righe di codice.
<browsers>
<browser refID="Default" >
<controlAdapters>
<adapter
controlType="System.Web.UI.Page"
adapterType="ASPItalia.com.MyPageAdapter" />
</controlAdapters>
</browser>
</browsers>In uno scenario reale, infatti, utilizzeremo SessionPageStatePersister solo per alcuni tipi di client in particolare, dato che potremmo impattare negativamente sulle performance dell'applicazione.
- Speciale ASP.NET security
- #945 - Verificare l'accesso ai file mediante l'UrlAuthorizationModule di ASP.NET
- Realizzare applicazioni ASP.NET sicure - Seconda parte
- #918 - Control adapter per cambiare l'output dei controlli di ASP.NET 2.0
- Integrare Windows Live ID, Contacts e Presence API nelle tue applicazioni
- Trovare il Page not Found...
- Articolo su ASP.NET e gli standard web su MSDN
- #914 - Custom Control con il supporto al databind per ASP.NET 2.0
- #904 - L'uso dell'attributo TemplateInstance con ITemplate nei custom control
- #935 - Sfruttare l'evento LoadComplete della pagina
- Multi-threading: migliorare la performance delle applicazioni web
- Realizzare un controllo custom in ASP.NET AJAX - Prima parte
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Stampa
Snippet
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
