private void btnDisconnectAllSession_ItemClick(object sender, ItemClickEventArgs e) { for (int i = 0; i < listSessions.Count; i++) { if (listSessions[i].connectedState == Enums.CONNECTSTATE_CLASS.Active) { bool kq = ListSessions.DisconnectUserSession(WTS_CURRENT_SERVER_HANDLE, i, false); } } LoadListSession(); }
public void LoadListSession(bool isCheck) { var listOldSessions = listSessions; listSessions = ListSessions.ListUsers(Environment.MachineName); gridListSession.DataSource = listSessions; if (isCheck) { ListSessions.CheckSessionsChange(listOldSessions, listSessions); } }
// Tự động hóa việc Logoff các User ở trạng thái disconnected. public void RemoveDisconnectSessions(int sessionID) { int k = 0; foreach (DisconnectSession dcss in ListDisconnectedSessions) { if (dcss.SessionID == sessionID) { ListDisconnectedSessions.RemoveAt(k); ListSessions.LogofftUserSession(WTS_CURRENT_SERVER_HANDLE, sessionID, false); break; } k++; } }
private void btnDisconnectSession_ItemClick(object sender, ItemClickEventArgs e) { int index = gridView1.FocusedRowHandle; int sessionID = listSessions[index].sessionID; bool kq = ListSessions.DisconnectUserSession(WTS_CURRENT_SERVER_HANDLE, sessionID, false); if (kq) { MessageBox.Show("Ngắt kết nối " + listSessions[index].userName + " thành công!!"); LoadListSession(); } else { MessageBox.Show("Lỗi!!!!"); } }
private void btnDisconnectAllSession_ItemClick(object sender, ItemClickEventArgs e) { List <FilterLogoffUser> listFilter = PDCSS.Load_FilterLogoffUsers(); bool isDisconnect, result; int numError = 0; timerSession.Enabled = false; for (int i = 0; i < listSessions.Count; i++) { if (listSessions[i].connectedState == CONNECTSTATE_CLASS.Active) { isDisconnect = true; foreach (var obj in listFilter) { if (obj.UserName.Equals(listSessions[i].userName)) { isDisconnect = false; break; } } if (isDisconnect == true) { result = ListSessions.DisconnectUserSession(WTS_CURRENT_SERVER_HANDLE, listSessions[i].sessionID, false); if (result) { Logging.WriteLogSessions("User " + listSessions[i].userName + " đã bị ngắt kết nối bởi Admin", "Manual Disconnect"); } else { Logging.WriteLogSessions("Admin thất bại khi ngắt kết nối User " + listSessions[i].userName, "Manual Disconnect"); numError++; } } } } if (numError == 0) { ShowNotification("Xong", false); } else { ShowNotification("Thất bại", true); } LoadListSession(false); timerSession.Enabled = true; }
private void btnLogoffAllSession_ItemClick(object sender, ItemClickEventArgs e) { List <FilterLogoffUser> listFilter = PDCSS.Load_FilterLogoffUsers(); bool isLogoff, result; int numError = 0; timerSession.Enabled = false; for (int i = 0; i < listSessions.Count; i++) { isLogoff = true; foreach (var obj in listFilter) { if (obj.UserName.Equals(listSessions[i].userName)) { isLogoff = false; break; } } if (isLogoff == true) { PDCSS.RemoveDisconnectSessions(i); result = ListSessions.LogofftUserSession(WTS_CURRENT_SERVER_HANDLE, listSessions[i].sessionID, false); if (result) { Logging.WriteLogSessions("User " + listSessions[i].userName + " đã bị tắt bởi Admin", "Manual Logoff"); } else { Logging.WriteLogSessions("Admin thất bại khi tắt User " + listSessions[i].userName, "Manual Logoff"); numError++; } } } if (numError == 0) { ShowNotification("Xong", false); } else { ShowNotification("Thất bại " + numError + " Users", false); } LoadListSession(false); timerSession.Enabled = true; }
private void btnDisconnectSession_ItemClick(object sender, ItemClickEventArgs e) { int index = gridView1.FocusedRowHandle; int sessionID = listSessions[index].sessionID; string userName = listSessions[index].userName; bool result = ListSessions.DisconnectUserSession(WTS_CURRENT_SERVER_HANDLE, sessionID, false); if (result) { Logging.WriteLogSessions("User " + userName + " đã bị ngắt kết nối bởi Admin", "Manual Disconnect"); ShowNotification("Thành công", false); LoadListSession(false); } else { Logging.WriteLogSessions("Admin thất bại khi ngắt kết nối User " + userName, "Manual Disconnect"); ShowNotification("Thất bại", true); } }
public void LoadListSession() { listSessions = ListSessions.ListUsers(Environment.MachineName); gridListSession.DataSource = listSessions; }
public void UpdateTimeDisconnection(Session[] listSessions, int timeUpdate) { int k = 0; bool isDisconnect; for (int i = 0; i < listSessions.Length; i++) { int currSessionID = listSessions[i].sessionID; string currUserName = listSessions[i].userName; // Xét xem Session User này có nằm trong danh sách được lọc hay không. // Nếu có thì sẽ không tự động Logoff User này. isDisconnect = true; List_FilterUsers = Load_FilterLogoffUsers(); foreach (var obj in List_FilterUsers) { if (obj.UserName.Equals(currUserName)) { isDisconnect = false; break; } } if (isDisconnect == true) { if (listSessions[i].connectedState == Enums.CONNECTSTATE_CLASS.Disconnected) { k = 0; if (ListDisconnectedSessions.Count > 0) { foreach (DisconnectSession dcss in ListDisconnectedSessions) { if (dcss.SessionID == currSessionID) { if (dcss.TimeHasDisconnected >= MaxTime) { // Đã đạt ngưỡng thời gian giới hạn. Hệ thống sẽ tự động logoff user này. ListDisconnectedSessions.RemoveAt(k); ListSessions.LogofftUserSession(WTS_CURRENT_SERVER_HANDLE, currSessionID, false); Logging.WriteLogSessions("User " + currUserName + " bị hệ thống tự động tắt khỏi máy chủ", "Auto Logoff"); break; } else { dcss.TimeHasDisconnected += timeUpdate; break; } } else if (++k >= ListDisconnectedSessions.Count) { // Nếu user này vừa mới disconnect nên chưa tồn tại trong danh sách disconnect // Ta thêm user này vào danh sách disconnect ListDisconnectedSessions.Add(new DisconnectSession(currSessionID, currUserName, timeUpdate)); // Logging.WriteLogSessions("User " + currUserName + " rời khỏi máy chủ", "Disconnect"); break; } } } else { // Nếu danh sách disconnect chưa có gì, ta thêm user vừa mới disconnect ListDisconnectedSessions.Add(new DisconnectSession(currSessionID, currUserName, timeUpdate)); // Logging.WriteLogSessions("User " + currUserName + " thoát khỏi máy chủ", "Disconnect"); } } else { // Nếu User kết nối lại thì xóa user này trong danh sách disconnect sessions k = 0; foreach (DisconnectSession dcss in ListDisconnectedSessions) { if (dcss.SessionID == currSessionID) { ListDisconnectedSessions.RemoveAt(k); // Logging.WriteLogSessions("User " + currUserName + " kết nối lại vào máy chủ", "Reconnect"); break; } k++; } } } } }