Support de la session dans les Generic Handlers (petit rappel)

Dernièrement, nous avons parlé d'interface pour supporter la session dans les fichiers ashx à mon taf. J'avais signalé l'existence de deux interfaces pour le support de celle-ci mais j'avais oublié les noms de ces interfaces. J'ai profité de mon petit voyage retour de ce we pour effectuer la recherche ... ;-).
Nous avons donc deux interfaces :

Il est intéressant de signaler en rappel qu'il s'agit d'interfaces vide ... Ce que normalement FxCop n'aimerait pas ;-). Bonne soirée.

Commentaires

1. Le mercredi, mai 14 2008, 08:20 par Stiiifff

Est-ce que tu sais comment cela fonctionne interne ? :)

2. Le jeudi, mai 15 2008, 21:13 par Thierry Thoua

Oh oui oui oui (lol). Non plus ou moins ... ;-). En réalité, lorsqu'on exécute une requete, sur l' HttpApplication, il y a l'exécution de la requête ... Et lors de celle-ci, on set la propriété Handler de l'objet HttpContext ... ;). Dans le set, il y a le test qui va positionner des flags a true pour le support de la session + readonly dessus. Voilouuuu.... Plus je ne sais pas ... Je n'ai jamais été plus bas niveau ... :/

3. Le jeudi, mai 15 2008, 22:51 par Stiiifff

Petit indice : va voir dans ton fichier "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config", aux sections <HttpHandlers> et <HttpModules> ... ;)

Le fonctionnement d'Asp.Net est tout de suite beaucoup plus clair quand tu vois ça, non ? :)

4. Le jeudi, mai 15 2008, 22:59 par Thierry Thoua

Yep mais ca je le savais ... Ca ne repond tjs pas à mon interrogation ... Je cherche à comprendre ou est utilisé "RequiresSessionState" et "ReadOnlySessionState" dans le process de la request ;-). En effet, ces flags sont utilisés dans la classe SessionStateModule .. qui est évidement défini dans le web.config pour le support de "Session". Mais quand instancie-t-il cet objet etc ?. Bref .. pas eu le temps de regarder ca .... Donc si qqun est au courant, tout avis m'intéresse ;-)

public void set_Handler(IHttpHandler value)
{
    this._handler = value;
    this.RequiresSessionState = false;
    this.ReadOnlySessionState = false;
    this.InAspCompatMode = false;
    if (this._handler != null)
    {
        if (this._handler is IRequiresSessionState)
        {
            this.RequiresSessionState = true;
        }
        if (this._handler is IReadOnlySessionState)
        {
            this.ReadOnlySessionState = true;
        }
        Page page = this._handler as Page;
        if ((page != null) && page.IsInAspCompatMode)
        {
            this.InAspCompatMode = true;
        }
    }
}
PS: Ok je ne suis peut être pas très clair ce soir (ok pas que ce soir ^^ ;)

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet

Page top