En passant les données de session entre ASP.NET les applications web
J'essaie d'aider un ami, ils ont une assez grosse application web (ASP.NET 4.0, Visual Basic) qui a un certain nombre de sous-dossiers que tous se comportent quasiment comme des sous-applications (mais ils sont juste des sous-dossiers de l'application principale). Cette application sera divisé en plusieurs indépendante de l'application web, car dans sa forme actuelle, il est difficile de maintenir et de développer davantage.
Le problème est que l'application monolithique utilise un certain nombre de variables de session pour des choses comme des informations de l'utilisateur (après ouverture de session, etc.) Je me demande si il ya un moyen facile de partager cette information en toute sécurité parmi les futur de plusieurs applications web (qui sera bien évidemment avoir des sessions indépendantes). L'état de Session est stockée dans SQL Server. Les utilisateurs de l'application web actuelle sont tous les utilisateurs et tous les utilisateurs ont accès à toutes les "sous-applications".
Je suis à la recherche pour obtenir des conseils au sujet de ces deux choses:
1.
J'ai déjà fait quelques recherches et trouvé single-sign-on - ce qui semble résoudre le problème de l'authentification au travers de ces applications, mais je suis familier avec elle et je ne comprends pas comment les informations d'authentification est supprimé si la session expire, puisque les différentes applications web différentes sessions. Il est possible de déconnecter un utilisateur à partir de toutes les applications web une fois que la session expire, dans l'un d'eux?
2.
Je soupçonne (mais pas sûr) qu'il y a peut être quelques autres données de session sur le dessus de l'authentification de l'information qui devra être partagé après la scission. Quelle serait la meilleure façon de le faire (de nouveau de manière fiable et en toute sécurité)?
J'ai trouvé cet article traite du passage de l'IDs (pour les enregistrements de base de données qui contiendrait les données partagées) et je me demande si c'est bon.
Tous les conseils seront les bienvenues.
PS: j'ai trouvé un certain nombre de discussions ici sur ce sujet, mais je ne crois pas qu'aucun d'entre eux de répondre à ces questions spécifiques. Le plus utile que j'ai trouvé était celui-ci:
Le partage de données entre ASP.NET applications
Je pense qu'ils vont tous être sur le même domaine. Actuellement, il est juste une seule application, et je crois qu'ils le plan de la division sur le même domaine.
Je suis aussi à la recherche pour le partage de l'ID de session entre la demande en vertu du même domaine.
OriginalL'auteur xxbbcc | 2012-06-30
Vous devez vous connecter pour publier un commentaire.
Finalement, j'ai trouvé la solution à ce problème et je pars ici à titre de référence aux autres:
StateServer utilise un service windows (ASP.NET Service d'État), qui gère les sessions en mémoire. Il utilise la MachineKey, AppDomainAppID ainsi que l'id de session pour identifier de manière unique une application.
Les liens suivants fourni les informations pour la mise en œuvre effective que j'ai fait:
Je ne connais pas la réponse (je n'ai pas utilisé MVC 5/6) mais j'imagine que ce serait le travail (bien que j'ai peut-être mal). Je vous suggère de lui donner un essai. Si cela fonctionne, je vous en serais reconnaissant, si vous avez laissé un commentaire ici pour les futurs lecteurs.
OriginalL'auteur xxbbcc
Il est possible de partager ASP.NET session entre les différentes applications. Bien entendu, toutes les applications de partage de la même session, de l'état de la base de données doivent être sur la même version de ASP.NET (sur une version où l'état de la session de bases de données sont compatibles). Aussi, toutes les applications de partage aurait besoin pour rester coordonné sur la façon dont l'information dans l'état de session est maintenue. Par exemple une variable de session devront maintenir un compatible de l'information et de sens entre l'application.
OriginalL'auteur HeatfanJohn