2010-07-29 5 views
1

J'ai lu sur le web plusieurs alternatives au suivi des utilisateurs, mais je n'arrive pas à trouver la solution "parfaite" pour ma situation. L'application va (j'espère) être à haut volume, donc je voudrais concevoir avec l'évolutivité à l'esprit. Il peut être nécessaire d'héberger le site en utilisant plusieurs serveurs Web, donc le mode session InProc ne fonctionnera pas, n'est-ce pas? Il est conservé en mémoire du serveur web actuel et comme l'utilisateur peut passer du serveur web au serveur web, je ne peux pas être sûr que la session restera connectée à l'utilisateur. Ai-je besoin de créer un membre personnalisé et un fournisseur de rôles compatible avec mySQL pour pouvoir utiliser les systèmes de gestion d'utilisateurs standard .NET (comme FormsAuthentication qui peut gérer les éléments de session d'après ce que j'ai compris)?Gestion des sessions utilisateur + avec la solution ASP.NET et MySQL

Les meilleures pratiques sont les bienvenues ainsi que les expériences empiriques de scénarios similaires. (Bien sûr, tout commentaire est vraiment bienvenu :))

Répondre

1

MySQL

Marvin Palmer has an article on Implementing .NET Membership and Roles using MySql.

session

En termes de traitement L'état de session, vous avez raison dans vos hypothèses ci-dessus. Vous pouvez implémenter des sessions Sticky pour vous assurer que les visiteurs sont routés vers le même serveur Web. Cela pourrait être une optimisation avant son temps, cependant. Faites face à ces défis quand vous y arrivez.

Vous pouvez vous débrouiller en veillant à ce que tous vos appels Session["foo"] soient supprimés dans une classe statique. Si vous ne l'avez pas déjà fait, créez une classe statique dont le travail consiste uniquement à définir/obtenir des valeurs de session. Créez une propriété pour chaque clé et accédez-y à partir de votre application en tant que MySessionMgr.CustomerID;. Quand/si votre mécanisme de persistance de session change, vous n'avez qu'à le changer dans cette classe. À l'avenir, vous pouvez envisager d'utiliser Windows Server AppFabric (anciennement appelé Velocity), la technologie de session partagée à plusieurs serveurs de Microsoft.

+0

Bonne réponse. Dieu j'aime cet endroit. Merci! – Phil

Questions connexes