public void NewUser(OnlineUserInfo user) { _mut.WaitOne(); RefreshImage(user.UserName, user.ImageHash); AddOnlineUserData(user); _mut.ReleaseMutex(); }
/// <summary> /// Cookie中没有用户ID或则存的的用户ID无效时在在线表中增加一个游客. /// </summary> public static OnlineUserInfo CreateGuestUser(int timeout) { OnlineUserInfo onlineuserinfo = new OnlineUserInfo(); onlineuserinfo.Userid = -1; onlineuserinfo.Username = "******"; onlineuserinfo.Nickname = "游客"; onlineuserinfo.Password = ""; onlineuserinfo.Groupid = 7; onlineuserinfo.Olimg = GetGroupImg(7); onlineuserinfo.Adminid = 0; onlineuserinfo.Invisible = 0; onlineuserinfo.Ip = DNTRequest.GetIP(); onlineuserinfo.Lastposttime = "1900-1-1 00:00:00"; onlineuserinfo.Lastpostpmtime = "1900-1-1 00:00:00"; onlineuserinfo.Lastsearchtime = "1900-1-1 00:00:00"; onlineuserinfo.Lastupdatetime = Utils.GetDateTime(); onlineuserinfo.Action = 0; onlineuserinfo.Lastactivity = 0; onlineuserinfo.Verifycode = ForumUtils.CreateAuthStr(5, false); int olid = Add(onlineuserinfo, timeout); onlineuserinfo.Olid = olid; return(onlineuserinfo); }
public static Discuz.Common.Generic.List <OnlineUserInfo> GetForumOnlineUserCollection(int forumid, out int totaluser, out int guest, out int user, out int invisibleuser) { Discuz.Common.Generic.List <OnlineUserInfo> coll = new Discuz.Common.Generic.List <OnlineUserInfo>(); #endif //在线游客 guest = 0; //在线隐身用户 invisibleuser = 0; //用户总数 totaluser = 0; IDataReader reader = DatabaseProvider.GetInstance().GetForumOnlineUserList(forumid); while (reader.Read()) { OnlineUserInfo info = LoadSingleOnlineUser(reader); //当前版块在线总用户数 totaluser++; if (info.Userid == -1) { guest++; } if (info.Invisible == 1) { invisibleuser++; } coll.Add(info); } reader.Close(); //统计用户 user = totaluser - guest; //返回当前版块的在线用户表 return(coll); }
private static OnlineUserInfo LoadSingleOnlineUser(DataRow dr) { OnlineUserInfo info = new OnlineUserInfo(); info.Olid = Int32.Parse(dr["olid"].ToString()); info.Userid = Int32.Parse(dr["userid"].ToString()); info.Ip = dr["ip"].ToString(); info.Username = dr["username"].ToString(); //info.Tickcount = Int32.Parse(reader["tickcount"].ToString()); info.Nickname = dr["nickname"].ToString(); info.Password = dr["password"].ToString(); info.Groupid = Int16.Parse(dr["groupid"].ToString()); info.Olimg = dr["olimg"].ToString(); info.Adminid = Int16.Parse(dr["adminid"].ToString()); info.Invisible = Int16.Parse(dr["invisible"].ToString()); info.Action = Int16.Parse(dr["action"].ToString()); info.Lastactivity = Int16.Parse(dr["lastactivity"].ToString()); info.Lastposttime = dr["lastposttime"].ToString(); info.Lastpostpmtime = dr["lastpostpmtime"].ToString(); info.Lastsearchtime = dr["lastsearchtime"].ToString(); info.Lastupdatetime = dr["lastupdatetime"].ToString(); info.Forumid = Int32.Parse(dr["forumid"].ToString()); if (dr["forumname"] != DBNull.Value) { info.Forumname = dr["forumname"].ToString(); } info.Titleid = Int32.Parse(dr["titleid"].ToString()); if (dr["title"] != DBNull.Value) { info.Title = dr["title"].ToString(); } info.Verifycode = dr["verifycode"].ToString(); return(info); }
public SpaceBasePage() { OnlineUserInfo oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout); olid = oluserinfo.Olid; userid = oluserinfo.Userid; username = oluserinfo.Username; if (DNTRequest.GetInt("postid", 0) > 0) { SpacePostInfo spacePostInfo = BlogProvider.GetSpacepostsInfo(Space.Data.DbProvider.GetInstance().GetSpacePost(DNTRequest.GetInt("postid", 0))); spaceuid = spacePostInfo != null? spacePostInfo.Uid:0; } if (spaceuid > 0) { spaceconfiginfo = BlogProvider.GetSpaceConfigInfo(spaceuid); spaceid = spaceconfiginfo.SpaceID; } else { if (spaceid > 0) { spaceuid = BlogProvider.GetUidBySpaceid(spaceid.ToString()); spaceconfiginfo = BlogProvider.GetSpaceConfigInfo(spaceuid); } } if (spaceconfiginfo == null) { spaceconfiginfo = new SpaceConfigInfo(); spaceconfiginfo.Status = SpaceStatusType.AdminClose; } if (spaceconfiginfo.Status != SpaceStatusType.Natural) { Context.Response.Redirect("index.aspx"); } spaceurl = Utils.GetRootUrl(BaseConfigs.GetForumPath) + "space/"; if (SpaceActiveConfigs.GetConfig().Enablespacerewrite > 0 && spaceconfiginfo.Rewritename != string.Empty) { spaceurl += spaceconfiginfo.Rewritename; } else { spaceurl += "?uid=" + spaceconfiginfo.UserID; } //去掉http地址中的文件名称 if (forumurl.ToLower().IndexOf("http://") == 0) { forumurlnopage = forumurl.Substring(0, forumurl.LastIndexOf('/')) + "/"; } else { forumurl = "../" + config.Forumurl; } }
/// <summary> /// 初始化 /// </summary> /// <param name="e"></param> override protected void OnInit(EventArgs e) { base.OnInit(e); GeneralConfigInfo config = GeneralConfigs.GetConfig(); string bgcolor = DNTRequest.GetQueryString("bgcolor").Trim(); int textcolor = DNTRequest.GetQueryInt("textcolor", 1); string[] bgcolorArray = bgcolor.Split(','); Color bg = Color.White; if (bgcolorArray.Length == 1 && bgcolor != string.Empty) { bg = Utils.ToColor(bgcolor); } else if (bgcolorArray.Length == 3 && Utils.IsNumericArray(bgcolorArray)) { bg = Color.FromArgb(Utils.StrToInt(bgcolorArray[0], 255), Utils.StrToInt(bgcolorArray[1], 255), Utils.StrToInt(bgcolorArray[2], 255)); } CookiesHelper.FailNoDomainCoolie("CheckCode"); OnlineUserInfo oui = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout); string checkCode = oui.Verifycode; VerifyImageInfo verifyimg = VerifyImageProvider.GetInstance(config.VerifyImageAssemly).GenerateImage(checkCode, 120, 60, bg, textcolor); //用于验证 CookiesHelper.AddNoDomainCoolie("CheckCode", checkCode, 1); Bitmap image = verifyimg.Image; System.Web.HttpContext.Current.Response.ContentType = verifyimg.ContentType; image.Save(this.Response.OutputStream, verifyimg.ImageFormat); }
public void Process(Socket workerSock) { LoginMsg login = new LoginMsg(); login.ReceiveFrom(workerSock); string userName = login.UserName; string userPwd = login.UserPwd; var userService = new UserService(userName, userPwd); bool loginResult = userService.CheckLogin(); if (loginResult) { OnlineUserInfo user = new OnlineUserInfo { UserName = userName, IPEnd = workerSock.RemoteEndPoint as IPEndPoint }; foreach (var s in Server.TheTcpHelper.AcceptedSockets) { NewUserOnlineMsg newUserOnlineMsg = new NewUserOnlineMsg(user.UserName, user.IPEnd.Address.ToString()); newUserOnlineMsg.Send(s); } UserService.LoginUsers.Add(user); if (!UserService.DicUserSockets.ContainsKey(user.UserName)) { UserService.DicUserSockets.Add(user.UserName, workerSock); } } var r = loginResult ? LOGIN_RESULT.OK : LOGIN_RESULT.PWD_ERROR; Console.WriteLine("{0} login {1}", userName, r); LoginResultMsg loginResultMsg = new LoginResultMsg(r); loginResultMsg.Send(workerSock); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { config = GeneralConfigs.GetConfig(); // 如果IP访问列表有设置则进行判断 if (config.Adminipaccess.Trim() != "") { string[] regctrl = Utils.SplitString(config.Adminipaccess, "\n"); if (!Utils.InIPArray(DNTRequest.GetIP(), regctrl)) { Context.Response.Redirect(BaseConfigs.GetForumPath + "admin/syslogin.aspx"); return; } } //获取当前用户的在线信息 OnlineUserInfo oluserinfo = new OnlineUserInfo(); try { oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout); } catch { Thread.Sleep(2000); oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout); } #region 进行权限判断 UserGroupInfo usergroupinfo = AdminUserGroups.AdminGetUserGroupInfo(oluserinfo.Groupid); if (oluserinfo.Userid <= 0 || usergroupinfo.Radminid != 1) { Context.Response.Redirect(BaseConfigs.GetForumPath + "admin/syslogin.aspx"); return; } string secques = Users.GetUserInfo(oluserinfo.Userid).Secques; // 管理员身份验证 if (Context.Request.Cookies["dntadmin"] == null || Context.Request.Cookies["dntadmin"]["key"] == null || ForumUtils.GetCookiePassword(Context.Request.Cookies["dntadmin"]["key"].ToString(), config.Passwordkey) != (oluserinfo.Password + secques + oluserinfo.Userid.ToString())) { Context.Response.Redirect(BaseConfigs.GetForumPath + "admin/syslogin.aspx"); return; } else { Context.AddAdminCookie(config, oluserinfo, secques); //HttpCookie cookie = HttpContext.Current.Request.Cookies["dntadmin"]; //cookie.Values["key"] = ForumUtils.SetCookiePassword(oluserinfo.Password + secques + oluserinfo.Userid.ToString(), config.Passwordkey); //cookie.Expires = DateTime.Now.AddMinutes(30); //HttpContext.Current.Response.AppendCookie(cookie); } #endregion } }
private void OnGetOnlineUser(DataModel model) { OnlineUserInfo list = OnlineUserInfo.Parser.ParseFrom(model.Message); print("online userList count:" + list.UserList.Count); ChatManager.Instance.OnlineUserList.Clear(); ChatManager.Instance.OnlineUserList.AddRange(list.UserList); ChatManager.Instance.OnlineUserChanged(); MainUIManager.Instance.UpdateUserList(); }
protected string GetLastPageVisitedInfo(OnlineUserInfo oui) { string result = string.Empty; if (!String.IsNullOrEmpty(oui.LastPageVisited)) { result = string.Format("<a href=\"{0}\" target=\"_blank\">{0}</a>", oui.LastPageVisited); } return(result); }
public static Discuz.Common.Generic.List <OnlineUserInfo> GetOnlineUserCollection(out int totaluser, out int guest, out int user, out int invisibleuser) { Discuz.Common.Generic.List <OnlineUserInfo> coll = new Discuz.Common.Generic.List <OnlineUserInfo>(); #endif //在线注册用户数 user = 0; //在线隐身用户数 invisibleuser = 0; //在线总用户数 totaluser = 0; IDataReader reader = DatabaseProvider.GetInstance().GetOnlineUserList(); while (reader.Read()) { OnlineUserInfo info = LoadSingleOnlineUser(reader); // if (info.Userid > 0) { user++; } if (info.Invisible == 1) { invisibleuser++; } totaluser++; if (info.Userid > 0 || (info.Userid == -1 && GeneralConfigs.GetConfig().Whosonlinecontract == 0)) { info.Actionname = UserAction.GetActionDescriptionByID((int)(info.Action)); coll.Add(info); } } reader.Close(); int highestonlineusercount = Utils.StrToInt(Statistics.GetStatisticsRowItem("highestonlineusercount"), 1); if (totaluser > highestonlineusercount) { if (Statistics.UpdateStatistics("highestonlineusercount", totaluser) > 0) { Statistics.UpdateStatistics("highestonlineusertime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); Statistics.ReSetStatisticsCache(); } } //统计游客 if (totaluser > user) { guest = totaluser - user; } else { guest = 0; } //返回当前版块的在线用户集合 return(coll); }
public DiscuzSpaceUCBase() { OnlineUserInfo oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout); olid = oluserinfo.Olid; userid = oluserinfo.Userid; username = oluserinfo.Username; _userinfo = Users.GetUserInfo(userid); if (DNTRequest.GetInt("postid", 0) > 0) { SpacePostInfo __spacepostinfo = BlogProvider.GetSpacepostsInfo(Space.Data.DbProvider.GetInstance().GetSpacePost(DNTRequest.GetInt("postid", 0))); spaceuid = __spacepostinfo != null? __spacepostinfo.Uid:0; } if (spaceuid > 0) { spaceconfiginfo = BlogProvider.GetSpaceConfigInfo(spaceuid); spaceid = spaceconfiginfo.SpaceID; } else { if (spaceid > 0) { spaceuid = BlogProvider.GetUidBySpaceid(spaceid.ToString()); spaceconfiginfo = BlogProvider.GetSpaceConfigInfo(spaceuid); } } if (spaceconfiginfo == null) { spaceconfiginfo = new SpaceConfigInfo(); } pagesize = spaceconfiginfo.Bpp; //去掉http地址中的文件名称 if (forumurl.ToLower().IndexOf("http://") == 0) { forumurlnopage = forumurl.Substring(0, forumurl.LastIndexOf('/')) + "/"; } else { forumurl = "../" + forumurl; } if (configspaceurlnopage.ToLower().IndexOf("http://") < 0) { configspaceurlnopage = forumurlnopage; } else { configspaceurlnopage = configspaceurlnopage.ToLower().Substring(0, configspaceurlnopage.LastIndexOf('/')) + "/"; } }
public static OnlineUserInfo GetOnlineUser(int olid) { IDataReader reader = DatabaseProvider.GetInstance().GetOnlineUser(olid); OnlineUserInfo onlineuserinfo = null; if (reader.Read()) { onlineuserinfo = LoadSingleOnlineUser(reader); } reader.Close(); return(onlineuserinfo); }
/// <summary> /// 获得指定用户的详细信息 /// </summary> /// <returns>用户的详细信息</returns> private static OnlineUserInfo GetOnlineUserByIP(int userid, string ip) { DataTable dt = DatabaseProvider.GetInstance().GetOnlineUserByIP(userid, ip); if (dt.Rows.Count > 0) { OnlineUserInfo oluser = LoadSingleOnlineUser(dt.Rows[0]); dt.Dispose(); return(oluser); } return(null); }
/// <summary> /// 获得指定用户的详细信息 /// </summary> /// <param name="userid">在线用户ID</param> /// <param name="password">用户密码</param> /// <returns>用户的详细信息</returns> private static OnlineUserInfo GetOnlineUser(int userid, string password) { DataTable dt = DatabaseProvider.GetInstance().GetOnlineUser(userid, password); if (dt.Rows.Count > 0) { DataRow dr = dt.Rows[0]; OnlineUserInfo onlineuserinfo = LoadSingleOnlineUser(dr); dt.Dispose(); return(onlineuserinfo); } return(null); }
/// <summary> /// 创建在线游客 /// </summary> /// <param name="sid">sessionId</param> /// <param name="updateTime">更新时间</param> /// <param name="ip">ip</param> /// <param name="regionId">区域id</param> /// <returns></returns> public static int CreateOnlineGuest(string sid, DateTime updateTime, string ip, int regionId) { OnlineUserInfo onlineUserInfo = new OnlineUserInfo(); onlineUserInfo.Uid = -1; onlineUserInfo.Sid = sid; onlineUserInfo.NickName = "游客"; onlineUserInfo.IP = ip; onlineUserInfo.RegionId = regionId; onlineUserInfo.UpdateTime = updateTime; return(BrnMall.Data.OnlineUsers.CreateOnlineUser(onlineUserInfo)); }
/// <summary> /// 获得在线用户 /// </summary> /// <param name="sid">sessionId</param> /// <returns></returns> public static OnlineUserInfo GetOnlineUserBySid(string sid) { OnlineUserInfo onlineUserInfo = null; IDataReader reader = BrnMall.Core.BMAData.RDBS.GetOnlineUserBySid(sid); if (reader.Read()) { onlineUserInfo = BuildOnlineUserFromReader(reader); } reader.Close(); return(onlineUserInfo); }
private void AddOnlineUserData(OnlineUserInfo user) { OnlineUserData userData = new OnlineUserData(); userData.UserName = user.UserName; if (user.NickName == null || user.NickName == string.Empty) { userData.NickName = user.UserName; } else { userData.NickName = user.NickName; } if (user.ImageHash != null) { try { string path = _vm.ImagePath + HashHelper.ComputeStringMd5(user.UserName) + ".jpg"; if (File.Exists(path)) { if (_vm.UserName == user.UserName) { userData.Image = new BitmapImage(); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read); byte[] buf = new byte[fs.Length]; fs.Read(buf, 0, (int)fs.Length); fs.Close(); MemoryStream ms = new MemoryStream(buf); userData.Image.BeginInit(); userData.Image.StreamSource = ms; userData.Image.DecodePixelWidth = 200; userData.Image.CacheOption = BitmapCacheOption.OnLoad; userData.Image.EndInit(); userData.Image.Freeze(); } else { userData.Image = new BitmapImage(new Uri(path)); userData.Image.Freeze(); } } } catch (Exception e) { Console.WriteLine(e); } } Application.Current.Dispatcher.Invoke(() => _vm.OnlineUser.Add(userData)); }
private static OnlineUserInfo LoadSingleOnlineUser(DataRow dr) { OnlineUserInfo info = new OnlineUserInfo(); info.Olid = TypeConverter.ObjectToInt(dr["olid"]); info.Userid = TypeConverter.ObjectToInt(dr["userid"]); info.Ip = dr["ip"].ToString(); info.Username = dr["username"].ToString(); info.Nickname = dr["nickname"].ToString(); info.Password = dr["password"].ToString(); info.Groupid = Int16.Parse(dr["groupid"].ToString()); info.Olimg = dr["olimg"].ToString(); info.Adminid = Int16.Parse(dr["adminid"].ToString()); info.Invisible = Int16.Parse(dr["invisible"].ToString()); info.Action = Int16.Parse(dr["action"].ToString()); info.Actionname = ""; info.Lastactivity = Int16.Parse(dr["lastactivity"].ToString()); info.Lastposttime = dr["lastposttime"].ToString(); info.Lastpostpmtime = dr["lastpostpmtime"].ToString(); info.Lastsearchtime = dr["lastsearchtime"].ToString(); info.Lastupdatetime = dr["lastupdatetime"].ToString(); info.Forumid = TypeConverter.ObjectToInt(dr["forumid"]); if (dr["forumname"] != DBNull.Value) { info.Forumname = dr["forumname"].ToString(); } info.Titleid = TypeConverter.ObjectToInt(dr["titleid"]); if (dr["title"] != DBNull.Value) { info.Title = dr["title"].ToString(); } info.Verifycode = dr["verifycode"].ToString(); if (dr["newpms"] != DBNull.Value) { info.Newpms = Int16.Parse(dr["newpms"].ToString()); } if (dr["newnotices"] != DBNull.Value) { info.Newnotices = Int16.Parse(dr["newnotices"].ToString()); } //if (dr["newfriendrequest"] != DBNull.Value) // info.Newfriendrequest = Int16.Parse(dr["newfriendrequest"].ToString()); //if (dr["newapprequest"] != DBNull.Value) // info.Newapprequest = Int16.Parse(dr["newapprequest"].ToString()); return(info); }
/// <summary> /// 从IDataReader创建OnlineUserInfo /// </summary> public static OnlineUserInfo BuildOnlineUserFromReader(IDataReader reader) { OnlineUserInfo onlineUserInfo = new OnlineUserInfo(); onlineUserInfo.OlId = TypeHelper.ObjectToInt(reader["olid"]); onlineUserInfo.Uid = TypeHelper.ObjectToInt(reader["uid"]); onlineUserInfo.Sid = reader["sid"].ToString(); onlineUserInfo.NickName = reader["nickname"].ToString(); onlineUserInfo.IP = reader["ip"].ToString(); onlineUserInfo.RegionId = TypeHelper.ObjectToInt(reader["regionid"]); onlineUserInfo.UpdateTime = TypeHelper.ObjectToDateTime(reader["updatetime"]); return(onlineUserInfo); }
/// <summary> /// 获得在线用户列表 /// </summary> /// <param name="pageSize">每页数</param> /// <param name="pageNumber">当前页数</param> /// <param name="locationType">位置类型(0代表省,1代表市,2代表区或县)</param> /// <param name="locationId">位置id</param> /// <param name="sort">排序</param> /// <returns></returns> public static List <OnlineUserInfo> GetOnlineUserList(int pageSize, int pageNumber, int locationType, int locationId, string sort) { List <OnlineUserInfo> onlineUserList = new List <OnlineUserInfo>(); IDataReader reader = BrnMall.Core.BMAData.RDBS.GetOnlineUserList(pageSize, pageNumber, locationType, locationId, sort); while (reader.Read()) { OnlineUserInfo onlineUserInfo = BuildOnlineUserFromReader(reader); onlineUserList.Add(onlineUserInfo); } reader.Close(); return(onlineUserList); }
//public override System.Threading.Tasks.Task OnConnected() //{ // string clientName = Context.QueryString["clientName"].ToString(); // string clientId = Context.QueryString["clientId"].ToString(); // OnLineUsers.AddOrUpdate(clientId, clientName, (key, value) => clientName); // Clients.All.userChange(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), string.Format("{0} 加入了。", clientName), OnLineUsers.ToArray()); // return base.OnConnected(); //} //public override System.Threading.Tasks.Task OnDisconnected(bool stopCalled) //{ // string clientName = Context.QueryString["clientName"].ToString(); // string clientId = Context.QueryString["clientId"].ToString(); // Clients.All.userChange(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), string.Format("{0} 离开了。", clientName), OnLineUsers.ToArray()); // OnLineUsers.TryRemove(clientId, out clientName); // return base.OnDisconnected(stopCalled); //} /// <summary> /// /// </summary> /// <returns></returns> public override Task OnConnectedAsync() { var orgNo = ""; var bgNo = ""; var result = 0; var user = new SysUsrMstr(); string clientId = Context.GetHttpContext().Request.Query["clientId"].ToString(); string clientName = Context.GetHttpContext().Request.Query["clientName"]; if (string.IsNullOrEmpty(clientName)) { user = _chatHelper.GetUserInfo(clientId); clientName = user.USR_REAL_NAME; } _chatHelper.GetStoreNo(clientId, ref orgNo, ref bgNo); var log = new Log("Chat/Connect/" + bgNo + ""); log.Write("connect:" + Context.ConnectionId + ""); try { UserList = UserList.Where(c => c.BgNo == bgNo).ToList(); var onlineUser = UserList.Where(p => p.ConnectionId == Context.ConnectionId && p.BgNo == bgNo).FirstOrDefault(); log.Write("onlineUser:"******""); if (user != null) { UserList.Remove(onlineUser); } // RemoveMessage(clientId); var newUser = new OnlineUserInfo(); if (int.TryParse(clientId, out result)) { newUser.UserType = int.Parse(user.USR_TYPE); } newUser.UserId = clientId; newUser.ConnectionId = Context.ConnectionId; newUser.UserNickName = clientName; newUser.Url = _chatHelper.GetWxUrl(clientId); newUser.BgNo = bgNo; UserList.Add(newUser); Clients.Clients(GetUserConnectionIds()).SendAsync("userChange", clientId, true); } catch (Exception ex) { log.Write(ex.Message); } return(base.OnConnectedAsync()); }
public List <OnlineUserInfo> GetFriends() { List <OnlineUserInfo> list = new List <OnlineUserInfo>(); var friends = Friends.FindAll(x => x.UserName == uName); foreach (Friends f in friends) { var u = new OnlineUserInfo(); u.UserName = f.FriendName; var x = LoginUsers.Find(user => user.UserName == u.UserName); u.IPEnd = x == null ? null : x.IPEnd; list.Add(u); } return(list); }
protected string GetLocationInfo(OnlineUserInfo oui) { string result = string.Empty; try { string countryName = GeoCountryLookup.LookupCountryName(oui.IPAddress); result = Server.HtmlEncode(countryName); } catch (Exception exc) { Debug.WriteLine(exc.ToString()); } return(result); }
private static OnlineUserInfo LoadSingleOnlineUser(DataRow dr) { OnlineUserInfo info = new OnlineUserInfo(); info.olID = Int32.Parse(dr["olID"].ToString()); info.UserID = Int32.Parse(dr["UserID"].ToString()); info.oIP = dr["oIP"].ToString(); info.oUserName = dr["oUserName"].ToString(); info.UserGroupsID = Int32.Parse(dr["UserGroupsID"].ToString()); info.UserSPID = Int32.Parse(dr["UserSPID"].ToString()); info.oAppendTime = DateTime.Parse(dr["oAppendTime"].ToString()); info.oLastTime = DateTime.Parse(dr["oLastTime"].ToString()); return(info); }
/// <summary> /// WEB权限认证 /// </summary> /// <param name="creinfo">认证信息</param> /// <returns>是否通过验正</returns> private bool AuthenticateUser(CredentialInfo creinfo) { if (creinfo.UserID > 0) { int olid = Discuz.Forum.OnlineUsers.GetOlidByUid(creinfo.UserID); if (olid > 0) { OnlineUserInfo oluserinfo = Discuz.Forum.OnlineUsers.GetOnlineUser(olid); if (oluserinfo.Userid == creinfo.UserID && Utils.UrlEncode(Discuz.Forum.ForumUtils.SetCookiePassword(oluserinfo.Password.Trim(), GeneralConfigs.GetConfig().Passwordkey)) == creinfo.Password)//检测用户id和口令 { return(true); } } } return(false); }
/// <summary> /// 创建在线会员 /// </summary> /// <param name="uid">会员id</param> /// <param name="sid">sessionId</param> /// <param name="nickName">会员昵称</param> /// <param name="updateTime">更新时间</param> /// <param name="ip">ip</param> /// <param name="regionId">区域id</param> /// <returns></returns> public static int CreateOnlineMember(int uid, string sid, string nickName, DateTime updateTime, string ip, int regionId) { OnlineUserInfo onlineUserInfo = new OnlineUserInfo(); onlineUserInfo.Uid = uid; onlineUserInfo.Sid = sid; onlineUserInfo.NickName = nickName; onlineUserInfo.IP = ip; onlineUserInfo.RegionId = regionId; onlineUserInfo.UpdateTime = updateTime; int olid = BrnMall.Data.OnlineUsers.CreateOnlineUser(onlineUserInfo); //更新用户最后访问信息 Users.UpdateUserLastVisit(uid, updateTime, ip, regionId); return(olid); }
/// <summary> /// WEB权限认证 /// </summary> /// <param name="creinfo">认证信息</param> /// <returns>是否通过验正</returns> private bool AuthenticateUser(CredentialInfo creinfo) { if (creinfo.ForumID > 0) { int olid = Discuz.Forum.OnlineUsers.GetOlidByUid(creinfo.UserID); if (olid > 0) { OnlineUserInfo oluserinfo = Discuz.Forum.OnlineUsers.GetOnlineUser(olid); if (oluserinfo.Userid == creinfo.UserID && Utils.UrlEncode(Discuz.Forum.ForumUtils.SetCookiePassword(oluserinfo.Password.Trim(), GeneralConfigs.GetConfig().Passwordkey)) == creinfo.Password && //检测用户id和口令 creinfo.AuthToken == DES.Encode(string.Format("{0},{1}", oluserinfo.Olid.ToString(), oluserinfo.Username.ToString()), oluserinfo.Password.Substring(0, 10)).Replace("+", "[")) //检查认证信息 { return(true); } } } return(false); }
/// <summary> /// 增加一个会员信息到在线列表中。用户login.aspx或在线用户信息超时,但用户仍在线的情况下重新生成用户在线列表 /// </summary> /// <param name="uid"></param> private static OnlineUserInfo CreateUser(int UserID, int timeout) { OnlineUserInfo onlineuserinfo = new OnlineUserInfo(); if (UserID > 0) { UserInfo ui = BLL.tbUserInfo.GetUserInfoModel(UserID); if (ui != null) { onlineuserinfo.UserID = UserID; onlineuserinfo.oUserName = ui.uName.Trim(); onlineuserinfo.oIP = HTTPRequest.GetIP(); onlineuserinfo.oAppendTime = DateTime.Parse(Utils.GetDateTime()); onlineuserinfo.oLastTime = DateTime.Parse(Utils.GetDateTime()); int olid = Add(onlineuserinfo, timeout); onlineuserinfo.olID = olid; HttpCookie cookie = HttpContext.Current.Request.Cookies["Yannyo"]; if (cookie != null) { if (HttpContext.Current.Request.Cookies["Yannyo"]["expires"] != null) { int expires = Utils.StrToInt(HttpContext.Current.Request.Cookies["Yannyo"]["expires"].ToString(), 0); if (expires > 0) { cookie.Expires = DateTime.Now.AddMinutes(Utils.StrToInt(HttpContext.Current.Request.Cookies["Yannyo"]["expires"].ToString(), 0)); } } } string cookieDomain = GeneralConfigs.GetConfig().CookieDomain.Trim(); if (cookieDomain != string.Empty && HttpContext.Current.Request.Url.Host.IndexOf(cookieDomain) > -1 && UsersUtils.IsValidDomain(HttpContext.Current.Request.Url.Host)) { cookie.Domain = cookieDomain; } HttpContext.Current.Response.AppendCookie(cookie); } } else { onlineuserinfo = CreateGuestUser(timeout); } return(onlineuserinfo); }
public override bool Run(CommandParameter commandParam, ref string result) { if (commandParam.AppInfo.ApplicationType == (int)ApplicationType.WEB) { result = Util.CreateErrorMessage(ErrorType.API_EC_PERMISSION_DENIED, commandParam.ParamList); return(false); } TokenInfo token = new TokenInfo(); if (System.Web.HttpContext.Current.Request.Cookies["dnt"] == null || System.Web.HttpContext.Current.Request.Cookies["dnt"]["expires"] == null) { token.Token = ""; result = commandParam.Format == FormatType.JSON ? string.Empty : SerializationHelper.Serialize(token); return(true); } OnlineUserInfo oluserinfo = OnlineUsers.UpdateInfo(commandParam.GeneralConfig.Passwordkey, commandParam.GeneralConfig.Onlinetimeout); int olid = oluserinfo.Olid; string expires = string.Empty; DateTime expireUTCTime; expires = System.Web.HttpContext.Current.Request.Cookies["dnt"]["expires"].ToString(); ShortUserInfo userinfo = Discuz.Forum.Users.GetShortUserInfo(oluserinfo.Userid); expireUTCTime = DateTime.Parse(userinfo.Lastvisit).ToUniversalTime().AddSeconds(Convert.ToDouble(expires)); expires = Utils.ConvertToUnixTimestamp(expireUTCTime).ToString(); string time = string.Empty; if (oluserinfo == null) { time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } else { time = DateTime.Parse(oluserinfo.Lastupdatetime).ToString("yyyy-MM-dd HH:mm:ss"); } string authToken = Common.DES.Encode(string.Format("{0},{1},{2}", olid.ToString(), time, expires), commandParam.AppInfo.Secret.Substring(0, 10)).Replace("+", "["); token.Token = authToken; result = commandParam.Format == FormatType.JSON ? authToken : SerializationHelper.Serialize(token); return(true); }
public void AddUser(OnlineUserInfo userinfo) { throw new NotImplementedException(); }