2012-03-18 4 views

答えて

0

yesがキャッシュからリストを取得

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); 

と、ユーザーがログアウトするには、同じことを行うと、ユーザー

を削除して、あなただけの任意の失われたバインドコにリストをバインドすることができます

+0

ログアウトせずにブラウザを閉じるとどうなりますか? – Kaf

+0

これはスレッドの安全性に問題がありませんか? – CodesInChaos

+1

明示的にログアウトするのではなく、セッションが期限切れになってログアウトした場合はどうなりますか? (Kafに殴られ、次回は速く入力しなければならない) – KazR

2

ntrolあなたは経由でこれを行うことができます。

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

しかし、あなたは、それは非常に高価な操作になることができますので、キャッシュに/、これを適切に更新する必要があるでしょう。

関連する問題