J'utilise .NET 3.5. En outre, l'authentification des formulaires est utilisée. P>
Y a-t-il un moyen d'obtenir la liste des utilisateurs note: je n'utilise pas d'adhésions et de rôles em> p>
4 Réponses :
non il n'y a pas à moins que p>
Vous avez défini un dans votre propre code p> li>
Vous utilisez le fournisseur d'adhésion à aspnet par défaut qui possède un Vous utilisez un fournisseur de membre personnalisé et vous avez fourni une implémentation pour la Le fournisseur d'adhésion d'ASPnet par défaut calcule le nombre d'utilisateurs en ligne en interrogeant la base de données SQL Server et en vérifiant le Si vous vouliez faire quelque chose de similaire, vous pourriez envisager de mettre en œuvre une méthode similaire. Vous pouvez voir le code des fournisseurs par défaut de Téléchargement du code source < / a>. Pour compléter votre image, vous pouvez également vouloir exécuter aspnet_regsql. EXE afin que vous puissiez voir les procédures stockées que les fournisseurs par défaut utilisent. p> getnumberofusersonline () code> méthode définie. p> li>
getnumberofusersonline () code> Méthode vous-même p> li>
ol>
LastAltactivity code> stocké contre chaque utilisateur sur la propriété définie userSonlinetimewindow code> propriété que vous pouvez définir dans web.config. Si le LastAlactivityDate code> est supérieur à l'heure actuelle moins la valeur userSonlinetimewindow code> (qui représente minutes), un utilisateur est considéré comme en ligne. P>
Quelle est la difficulté à mettre en œuvre un fournisseur d'adhésion?
Pour mettre en œuvre le vôtre est assez simple. Consultez cet article- MSDN.MicRosoft.com/en-us/Library/f1kyba5e .aspx
Nommez-vous de savoir sur la propriété USERISONNETIMETIMEWINDOW.
Authentification des formulaires stocké tout ce qu'il est état dans un cookie qui est transmis à les navigateurs de l'utilisateur. P> blockQuote>
(Ceci permet une authentification des formulaires de fonctionner sur une ferme Web) p>
Par conséquent, il n'y a aucun moyen d'obtenir une liste d'utilisateurs enregistrés, etc. à partir de l'authentification des formulaires standard. strong> p> Cependant, l'authentification des formulaires a des événements qu'il déclenche lorsqu'il authentifie un utilisateur, etc. Vous pouvez mettre à jour votre propre liste d'utilisateurs dans ces événements - (soyez prudent avec le verrouillage si vous le faites) P>
Cependant, comme un utilisateur sera "enregistré" lorsque le cookie est expiré par les navigateurs, vous trouverez qu'il est très difficile de supprimer correctement tous les utilisateurs correctement à la bonne heure de votre liste. p>
Vous serez peut-être mieux de stocker le temps que vous avez vu chaque utilisateur et ensuite avoir une liste d'utilisateurs que vous avez vue dans les 5 dernières minutes. E.g Gardez une liste des utilisateurs forts> actifs forts>. P>
J'ai utilisé session_start et session_end sous global.aspx. Cela fonctionne presque parfois à l'exception de l'utilisateur fermer son navigateur. Le côté serveur doit attendre que la session a expiré pour supprimer l'utilisateur. P>
Le fournisseur d'adhésion a ses avantages, mais simplement pour suivre les utilisateurs en ligne, vous pouvez également:
ajoutez une colonne et pour obtenir les utilisateursOnline pour le passé Select * from Users where LastActivityDate >
DATEADD(minute, -(X), GETDATE())
Notez également peu importe ce que vous faites, ce nombre est susceptible de sortir.
Je devais faire quelque chose comme i> cette fois pour limiter la charge sur un site Web. Cependant, j'ai utilisé la session start / fin.