public void SignOut(long userID)
        {
            try
            {
                SuUser user = QueryProvider.SuUserQuery.FindByIdentity(userID);

                SuSession session = userSessionDao.FindByIdentity(userID);
                if (user == null)
                {
                    return;
                }

                IList <SuUserLog> suUserLog = QueryProvider.SuUserLogQuery.FindSuUserLogByUserIdSessionID(user.UserName, session.Sessionid);
                if (suUserLog.Count > 0)
                {
                    suUserLog[suUserLog.Count - 1].SignOutDate = DateTime.Now;
                    SuUserLogService.Update(suUserLog[suUserLog.Count - 1]);
                }

                userSessionDao.Delete(session);
            }
            catch { }
        }
        public void SaveTosuUserLog(string UserName, string Status, string SessionID)
        {
            if (System.Web.HttpContext.Current != null)
            {
                System.Web.HttpRequest currentRequest = System.Web.HttpContext.Current.Request;
                string ipAddress = currentRequest.ServerVariables["HTTP_X_FORWARDED_FOR"];
                if (ipAddress == null || ipAddress.ToLower() == "unknown")
                {
                    ipAddress = currentRequest.ServerVariables["REMOTE_ADDR"];
                }


                SuUserLog suUserLog = new SuUserLog();

                suUserLog.UserName = UserName;

                suUserLog.IPAddress   = ipAddress + "/" + Dns.GetHostName();
                suUserLog.SignInDate  = DateTime.Now;
                suUserLog.Status      = Status;
                suUserLog.SessionID   = SessionID;
                suUserLog.SignOutDate = null;
                SuUserLogService.Save(suUserLog);
            }
        }