Cas précis pour l'utilisation des sessions

Résolu
Max207 Messages postés 19 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 17 octobre 2008 - 5 mars 2008 à 10:14
Max207 Messages postés 19 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 17 octobre 2008 - 6 mars 2008 à 15:29
Bonjour à tous,

Je dois développer une application d'après une analyse technique précise. En gros je dois faire une double authentification d'abord par l'Active Directory puis par une base de données SQL propre à l'application et redirriger l'utilisateur vers des pages sécurisées

Dans mon application je dois utiliser les sessions et je ne peux pas passer par les composants que fournissent ASP.NET (form authentification, etc). Donc j'utilise l'objet Session directement.

En code-behind, pas de problème pour déclarer et affecter une variable à une session: Session["id_utilisateur"] etc.

Je rencontre un problème ensuite pour sécuriser mes pages. En faites pour sécuriser une page, je vérifie simplement si la Session["id_utilisateur"]. Mais ce qui m'ennuie c'est que je vais devoir recopier ce bout de code sur toutes les pages que je veux sécuriser. Alors je me suis dit: Pourquoi pas créer une class en C# qui utilise une méthode qui va vérifier si la session existe du genre VerifSession(...). Mais comme cela est en C#, je n'arrive pas à utiliser l'équivalent de l'Objet Session fournit très simplement en ASP.NET

Pourriez-vous me guider? Merci d'avance!

3 réponses

cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
5 mars 2008 à 11:02
Salut,

Dans un projet web, on devrait toujours faire hériter toutes ses pages d'une page de base (et non pas directement de System.Web.UI.Page), ainsi tout le traitement commun aux pages peut être mis quelque part.
Dans cette page de base, tu peux par exemple t'abonner au PageInit et faire à cet endroit la vérification, comme ça elle sera faite pour toutes les pages qui en héritent.

Sinon tu peux tout à fait le faire dans une classe externe, qu'il faudra dans ce cas appeler depuis chaque page : pour accéder à la Session hors du contexte d'une page, il faut passer par System.Web.HttpContext.Current.Session.

Bonne journée,
A++

<hr width="100%" size="2" />Nurgle (Antoine) - MSP
3
GillouXman Messages postés 561 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 10 juin 2010
5 mars 2008 à 14:58
tu peux utiliser la generic principale poru enregister le user logué , il est alors très facile de restreindre l'accès à cette personne via un web config correctement paramètré
0
Max207 Messages postés 19 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 17 octobre 2008
6 mars 2008 à 15:29
Merci pour vos réponses! Merci à Nurgle de m'avoir mis sur le bon chemin, c'est en procédant de la sorte que j'ai résolu mon problème. Création d'une class modèle pour ma page avec une fonction de Sécurité qui fait la vérification de la session. Puis dans mes pages qui héritent du modèle je fais juste l'appel de cette fonction en première instruction de le page_load(). Et voilà mes pages sécurisées par les sessions. Cool tout ça!
0
Rejoignez-nous