2011-08-10 4 views
1

J'ai eu une interview récente questions.Wish à partager avec des experts dans SO post.Seeking votre aimable coopération pour clarifier quelques choses.Maintien de la session

(1) Comment gérer une session d'utilisateur connecté sur une ferme Web.

J'avais répondu en tant que "State Server". L'intervieweur demandant l'autre option. J'ai répondu comme "Sql Server" .Mais pas tout à fait sûr si c'est correct. La deuxième option serait-elle "Sql Server"?

(2) Vous devez configurer un fournisseur d'authentification personnalisé personnalisé? Quel est le mode que vous choisirez de l'implémenter dans le fichier de configuration Web?

La bonne réponse serait-elle "Form" ou puis-je même choisir "Windows"?

(3) Comment améliorer les performances de requête LINQ to SQL si la concurrence n'est pas prise en compte?

J'ai répondu (i) Définir ObjectTrackingEnabled = false et (ii) Désactiver OptimisticConcurrency.

Veuillez partager vos réponses pour mieux comprendre les choses. Merci d'avance.

+0

La question de la batterie Web est destinée à déterminer si vous savez gérer la session sur plusieurs serveurs. La réponse est SQL Server car le serveur d'état est limité à une seule machine. –

+0

@Josh, désolé édité à "Web Farm" – Praveen

+0

Drôle ... J'ai vu votre édition et j'ai pensé que j'ai mal lu, alors j'ai édité mon commentaire! –

Répondre

0

Je vais essayer de le faire. Tout d'abord, comme mon commentaire l'indique, dans une ferme Web, vous ne pouvez pas compter sur la gestion de session en mémoire, car vous ne pouvez pas savoir quel serveur la requête de l'utilisateur va toucher dans une session donnée. La persistance des données de session sur un serveur SQL centralisé permet de partager ces données entre plusieurs serveurs Web. Si je comprends bien ce que vous demandez pour la deuxième question, vous voudrez utiliser l'authentification par formulaires, éventuellement avec votre propre fournisseur d'appartenances si vous utilisez une source d'authentification externe. Pour mettre en œuvre dans votre fichier web.config, vous allez faire quelque chose comme ceci:

<authentication mode="Forms"> 
    <forms loginUrl="~/Login" timeout="2880" name=".MYFORMSAUTHCOOKIE" /> 
</authentication> 
<authorization> 
    <deny users="?" /> 
</authorization> 

Vous pouvez consulter les documents sur la mise en place FormsAuthentication dans MSDN. Je ne suis pas un Linq to SQL, donc je ne peux pas vous aider sur le troisième.

+0

merci beaucoup – Praveen

Questions connexes