Question

Dans un travail précédent, nous avions une application ASP classique que personne ne souhaitait migrer vers ASP.NET. Les choses que cela a faites ont très bien fonctionné.

Cependant, il fallait ajouter de nouvelles fonctionnalités qui semblaient tout à fait adaptées à ASP.NET. La décision a été prise de permettre au système de devenir un étrange hybride d'ASP et d'ASP.NET.

La gestion des sessions a été notre principal problème. Nous avons élaboré une solution permettant de transmettre les valeurs de session via des variables de formulaire. J'ai parlé à d'autres personnes qui traitaient le même problème par le biais de cookies.

Les deux méthodes semblent un horrible kluge (en plus d’être terriblement précaires).

Existe-t-il un moyen plus efficace ou plus propre ou s'agit-il simplement d'une si mauvaise idée de commencer par une discussion sur le sujet qui ne sert à rien?

Était-ce utile?

La solution

Ne pouvez-vous pas conserver les données de session dans un magasin de données côté serveur? C'est-à-dire un fichier XML, une base de données, etc. Vous pouvez alors simplement passer un hachage (calculé en fonction de critères identifiant de manière sécurisée la session) à une page .NET qui peut sélectionner les données du magasin de données à l'aide de cet identifiant et renseigner les données de votre session. . Cela signifie toujours que nous devons toujours transmettre les demandes d’ASP à ASP.NET par le biais d’un proxy pour nous assurer que les données de session les plus récentes sont disponibles dans chaque application, mais j’ai peur d’un autre moyen d’y parvenir.

Autres conseils

J'ai eu à faire face au même problème. Dans mon cas, j'ai chiffré une clé dans un cookie et utilisé la base de données pour toute autre information. J'ai écrit le chiffrement dans .NET et inter-op'd pour déchiffrer l'identifiant du côté ASP. Il est un peu étrange de traiter avec une chaîne en base 64 en ce sens que l'ASP n'aura pas la même chaîne que .NET. Vous devrez donc peut-être faire ce que je faisais et réécrire la chaîne en base 64 en équivalent hexadécimal ou un autre dénominateur commun similaire. tactique. Il est relativement sécurisé (sauvegarde d’une attaque XSS).

Eh bien, la meilleure idée serait probablement d’avoir converti l’application ASP en .NET. Je pense que cela va probablement sans dire cependant. Si la sécurité est une préoccupation majeure, vous pouvez prendre certaines mesures concernant le cryptage et le maintien de l’intégrité des informations de session, afin de renforcer la sécurité, telles que le cryptage et le hachage symétriques.

Je ne connais pas de méthode plus propre pour le faire dans le cas général. Mais peut-être pouvez-vous décrire plus précisément quel état vous devez partager entre les systèmes? Il peut y avoir une solution plus propre dans votre cas particulier. L'état d'objet de session n'est pas toujours le meilleur moyen de conserver l'état.

Je suis d'accord avec Wes P ... que sont-ils? les objectifs à long terme? Si l'objectif à long terme est de migrer l'application ASP classique vers ASP.NET, je pense que la solution à court terme, quelle qu'elle soit, fonctionnera. Si le long terme consiste à conserver l’application ASP classique, vous feriez bien de choisir une solution plus robuste pour la gestion de session, semblable à ce que Oglester recommandé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top