Bonjour,
J'ai actuellement une problématique sur laquelle j'aimerais avoir vos avis...
Mon entreprise a un site web de type "back office", écrit en PHP et servi par Apache sous Linux. Pour diverses raisons, nous souhaitons migrer progressivement ce site vers ASP.NET. Ce qui signifie que pendant la période transitoire, des pages PHP et ASP.NET vont coexister, sur 2 serveurs différents (Apache et IIS).
Ce qui me pose problème, c'est le partage des données de sessions entre les 2 serveurs : je ne veux pas, par exemple, qu'un utilisateur ait besoin de s'identifier une fois pour PHP et une fois pour ASP.NET... ça doit rester complètement transparent pour l'utilisateur. Je pensais donc créer mes propres handlers de session en PHP et en ASP.NET, en enregistrant les données de sessions dans une BDD accessible par les deux serveurs. Les 2 langages offrent cette possibilité, comme expliqué dans ces liens :
http://www.php.net/manual/fr/functio...ve-handler.php
http://msdn.microsoft.com/en-us/library/ms178587.aspx
Côté PHP, j'ai réussi à stocker les données de sessions en base, ça fonctionne nickel. Je me contente de mettre dans une table ce qui est habituellement écrit dans un fichier de session. Là où ça se complique, c'est côté ASP.NET... je ne sais pas trop, dans mon implémentation de SessionStateStoreProviderBase, comment gérer la sérialisation/désérialisation des données de session au format PHP. Surtout que les données de session qu'on utilise actuellement en PHP peuvent avoir une structure assez complexe (tableaux associatifs imbriqués par exemple)...
Avez-vous déjà rencontré ce type de problématique ? Si oui, comment avez-vous géré ça ?
Toute idée constructive est la bienvenue, y compris si elle suggère une approche différente...
Merci d'avance
PS: A titre indicatif, voilà à quoi peuvent ressembler les données de sessions sérialisées par PHP :
D'ailleurs je n'ai pas trouvé les spécifications de ce format, si quelqu'un sait où trouver ça, ça m'intéresse !SESSION|N;UTIL|a:12:{s:6:"I_UTIL";s:3:"929";s:3:"NOM";s:8:"LEVESQUE";s:5:"LOGIN";s:9:"tlevesque";s:6:"PRENOM";s:6:"Thomas";s:9:"I_SECTEUR";N;s:8:"I_PROFIL";s:1:"8";s:6:"I_LABO";N;s:9:"LIBPROFIL";s:5:"NOMAD";s:8:"I_REGION";N;s:9:"LIBREGION";N;s:5:"I_SUP";N;s:11:"I_CATALOGUE";s:1:"0";}IP|s:9:"127.0.0.1";ACCES|a:4:{s:6:"I_UTIL";N;s:9:"GEST_UTIL";s:1:"2";s:14:"GEST_CATALOGUE";s:1:"2";s:8:"I_PROFIL";s:1:"8";}
Partager