2012-03-18 3 views

답변

0

예는 캐시에서 목록을

List<User> OnlineUsers = new List<User>(); 
    Cache.Insert ("onlineuser",OnlineUsers,...); 

하고 loginButton 코드를 캐시와 로그인 추가 Global.asax에와 위해 Application_Start 이벤트에 사용자 클래스의 형태의 새로운 List<>을 작성하여 저장하고 이동 사용자

User loggedin =someHelperCode.GetUser (txtUserName.Text,txtPassword.Text); 
    ((List<User>)Cache["onlineuser"]).Add (loggedin); 

와 사용자가 로그 아웃 할 때 동일한 작업을 수행하고 사용자

을 제거하고 방금 어떤 손실 구속 공동으로 목록을 바인딩 할 수 있습니다

var onlineUsers = System.Web.Security.Membership.GetAllUsers() 
    .Cast<System.Web.Security.MembershipUser>() 
    .Where(user => user.IsOnline); 

을하지만 매우 비용이 많이 드는 작업이 될 수 있기 때문에 당신은/캐시 할 필요가 제대로이 새로 고쳐집니다 : ntrol

+0

사용자가 로그 아웃하지 않고 브라우저를 닫으면 어떻게됩니까? – Kaf

+0

스레드 안전 문제가 있습니까? – CodesInChaos

+1

명시 적으로 로그 아웃하지 않고 세션이 만료되어 사용자가 로그 아웃하면 어떻게됩니까? (Kaf에 맞음 - 다음 번에 더 빨리 입력해야 함) – KazR

2

당신은을 통해이 작업을 수행 할 수 있습니다.

관련 문제