Z dokumentacji Microsoft:
GetNumberOfUsersOnline zwraca liczbę użytkowników dla bieżącego ApplicationName, gdzie data ostatniej aktywności jest większa niż bieżący czas pomniejszony o U serIsOnlineTimeWindow. W ostatniej aktywności data/czas pieczęć jest aktualizowana do aktualnej daty i czasu, gdy poświadczenia użytkownika są zatwierdzane w drodze ValidateUser lub UpdateUser metody lub gdy wezwanie do getUser przeciążenia, które ma żadnych parametrów lub taki, który używa parametru userIsOnline do określenia, że data/sygnatura czasowa powinna zostać zaktualizowana.
Widać, że GetNumberOfUsersOnline zależy od wielu parametrów i nie jest efektywne. Jako obejście sugeruję, że można dodać SqlMembershipProvider i zastąpić GetNumberOfUsersOnline(), więc możesz zaimplementować tutaj swoją logikę.
public class MyMembershipProvider : SqlMembershipProvider
{
public override bool ValidateUser(string username, string password)
{
if (base.ValidateUser(username, password))
{
// successfully logged in. add logic to increment online user count.
return true;
}
return false;
}
public override int GetNumberOfUsersOnline()
{
// add logic to get online user count and return it.
}
}
Wystarczy zmniejszyć logika Internecie liczyć użytkownik w użytkownikowi wylogować
Jeśli chcesz odwiedzający kolein i odwiedzanych stron, tutaj jakieś pojęcie:
[W] (http://forums.asp.net/t/1847047.aspx?SimpleMembershipProvider+GetNumberOfUsersOnline+Method+MembershipUser+LastLoginDate+Property) sugeruje SimpleMembership nie realizacji tej funkcji. – Jasen
Chcesz poznać liczbę zalogowanych użytkowników? lub całkowita liczba użytkowników online? –
@SimchaKhabinsky Suma użytkowników online – Chatra