Il existe pas mal de façons de conserver un objet de façon globale, dont la plupart sont indépendant de DNN.
La différence est souvent liée au contexte d'accès / conservation de l'objet, encore que pour des contextes équivalent il existe souvent plusieurs possibilités:
Une liste non exhaustive inclue:
- Au niveau de l'application: HttpApplicationState (Context.Application), HostSettings, ModuleSettings d'un module bien identifié (HostSettings par exemple), Cache (DotNetNuke.Common.Utilities.DataCache), Singleton, classe statique simple, Table quelconque en DB, Fichier de Config arbitraire...
- Au niveau de la requête: Contexte Http, Viewstate de la page, de certains contrôles, Champs de formulaire Html caché, propriété d'un controle, variable dans l'api cliente DNN, IModuleCommunication...
- Au niveau de l'utilisateur: Session, Profil d'identité, Profil de personalisation, cookie...
Bref, ce ne sont pas les solutions qui manquent, tu as l'embarras du choix. j'imagine que dans une problématique d'authentification tu pencheras peut-être pour une variable de Session.