/// <summary> /// 记录动作 /// </summary> /// <param name="actionType"></param> public static void CreateValidateCodeActionRecode(string actionType) { foreach (ValidateCode tempValidateCode in AllSettings.Current.ValidateCodeSettings.ValidateCodes) { if (string.Compare(tempValidateCode.ActionType, actionType, true) == 0) { if (tempValidateCode.Enable == false) { return; } if (tempValidateCode.LimitedCount == 0 || tempValidateCode.LimitedTime == 0) { return; } string IP = IPUtil.GetCurrentIP(); ValidateCodeDao.Instance.CreateValidateCodeActionRecord(IP, actionType, DateTimeUtil.Now, tempValidateCode.LimitedTime, tempValidateCode.LimitedCount); string cacheKey = string.Format(cacheKey_ValidateCodeActionRecodes, IP); CacheUtil.Remove(cacheKey); break; } } }
/// <summary> /// 是否需要输验证码 /// </summary> /// <param name="actionType"></param> /// <returns></returns> public static bool HasValidateCode(string actionType) { foreach (ValidateCode tempValidateCode in AllSettings.Current.ValidateCodeSettings.ValidateCodes) { if (string.Compare(tempValidateCode.ActionType, actionType, true) == 0) { if (tempValidateCode.Enable == false) { return(false); } if (tempValidateCode.ExceptRoleIds.Count > 0) { UserRoleCollection userRoles = User.Current.Roles; foreach (UserRole role in userRoles) { if (tempValidateCode.ExceptRoleIds.Contains(role.RoleID.ToString())) { return(false); } } } if (tempValidateCode.LimitedTime == 0 || tempValidateCode.LimitedCount == 0) { return(true); } string IP = IPUtil.GetCurrentIP(); ValidateCodeActionRecordCollection recodes = GetValidateCodeActionRecodes(IP); DateTime dateTime = DateTimeUtil.Now.AddSeconds(0 - tempValidateCode.LimitedTime); int count = 0; foreach (ValidateCodeActionRecord recode in recodes) { if (string.Compare(recode.Action, actionType, true) == 0) { if (recode.CreateDate > dateTime) { count++; } } } if (count >= tempValidateCode.LimitedCount) { return(true); } return(false); } } return(false); }
private void initCanRegister() { using (ErrorScope es = new ErrorScope()) { m_CanRegister = UserBO.Instance.CanRegister(IPUtil.GetCurrentIP()); es.CatchError <ErrorInfo>(delegate(ErrorInfo error) { m_CannotRegisterReason = error.Message; }); } }
public void ProcessRequest(System.Web.HttpContext context) { bool success; if (context.Request.HttpMethod == "POST") { string from = context.Request.QueryString["from"]; string content = context.Request.Form["content"]; content = HttpUtility.HtmlEncode(content); if (content == null) { return; } string message = ""; using (ErrorScope es = new ErrorScope()) { try { success = DoingBO.Instance.UpdateDoing(User.Current, IPUtil.GetCurrentIP(), content); if (success == false) { es.CatchError <ErrorInfo>(delegate(ErrorInfo error) { message = error.Message; }); } else { message = User.Current.Doing; } } catch (Exception ex) { message = ex.Message; success = false; } } message = StringUtil.ToJavaScriptString(message); string js = @" <Script language='JavaScript'> parent.parent.SubmitBack(" + (success ? "true" : "false") + ",'" + message + @"'); </Script>"; HttpContext.Current.Response.Write(js); } }
protected void Page_Load(object sender, EventArgs e) { if (_Request.IsClick("adddoing")) { string content = _Request.Get("content", Method.Post); bool success; { success = DoingBO.Instance.CreateDoing(AuthUser.CurrentID, IPUtil.GetCurrentIP(), content); } Response.Clear(); Response.Write(My.Doing); Response.End(); return; } this.FriendList = new FriendCollection(); ProcessRequest(); }
public override void AfterExecute(int operatorUserID, string param, bool success, int totalCount, int finishedCount, out string title) { if (success) { title = "删除动态成功,共删除 " + finishedCount + " 个动态"; FeedSearchFilter filter = FeedSearchFilter.Parse(param); User operatorUser = UserBO.Instance.GetUser(operatorUserID, GetUserOption.WithAll); Logs.LogManager.LogOperation( new Feed_DeleteFeedBySearch(operatorUserID, operatorUser.Name, IPUtil.GetCurrentIP(), filter, finishedCount) ); } else { title = "删除动态失败"; } }
public override void AfterExecute(int operatorUserID, string param, bool success, int totalCount, int finishedCount, out string title) { if (success) { title = "审核主题成功,共审核 " + finishedCount + " 个主题"; StringList paramData = StringList.Parse(param); TopicFilter filter = TopicFilter.Parse(paramData[0]); User operatorUser = UserBO.Instance.GetUser(operatorUserID, GetUserOption.WithAll); Logs.LogManager.LogOperation( new Topic_DeleteTopicBySearch(operatorUserID, operatorUser.Name, IPUtil.GetCurrentIP(), filter, finishedCount) ); } else { title = "审核主题失败"; } }
protected void Application_BeginRequest(object sender, EventArgs e) { if (inited == false) { #region 初始化 lock (initLocker) { if (inited == false) { LogHelper.CreateDebugLog("bbsmax 开始初始化"); Config.Current = new WebEngineConfig(); TemplateManager.Init(false); //TODO:重复执行会出错 //初始化系统并载入设置 Globals.Init(); Booter.Init(); //TODO:重复执行会出错 //初始化插件 PluginManager.Init(); #if !Passport //将最后一次备份的在线信息恢复至内存 OnlineUserPool.Instance.Restore(); #endif //初始化路由 BbsRouter.Init(); inited = true; } } #endregion } if (Request.RequestType == "POST") { #region 处理大文件上传 if (StringUtil.StartsWithIgnoreCase(Request.RawUrl, Globals.AppRoot + "/default.aspx?uploadtempfile.aspx")) { string query = Request.RawUrl.Substring(Globals.AppRoot.Length + 33); new MaxLabs.bbsMax.AppHandlers.UploadTempFileHandler().ProcessRequest(HttpContext.Current, HttpUtility.ParseQueryString(query)); Response.End(); } #endregion } if (RequestUtil.CompressStaticContent(Context)) { return; } MaxLabs.WebEngine.Context.Init(); if (BbsRouter.Route()) { Context.Items.Add("need-compress", true); JobManager.ExecuteBeforeRequestJobs(); MaxLabs.bbsMax.Entities.User user = MaxLabs.bbsMax.Entities.User.Current; if (user != null && user.UserID > 0) { string ip = IPUtil.GetCurrentIP(); if (ip != user.LastVisitIP) { LogManager.LogUserIPChanged(new UserIPLog(user.UserID, user.Username, ip, user.LastVisitIP, Request.RawUrl)); // MaxLabs.bbsMax.Logs.LogManager.LogOperation(new Logs.User_IPChange(user.UserID, user.Username, user.LastVisitIP == null ? string.Empty : user.LastVisitIP, ip)); UserBO.Instance.UpdateLastVisitIP(user.UserID, ip); } } Stopwatch processTimer = new Stopwatch(); processTimer.Start(); HttpContext.Current.Items["MaxLabs.bbsMax.ProcessTimer"] = processTimer; } else { #region 根据路径来决定是否允许请求。例如某些文件夹只允许请求图片而某些文件夹什么都不允许请求 string path = Request.Url.AbsolutePath.Substring(Globals.AppRoot.Length).Trim('/', '\\'); string file = Request.Url.LocalPath; //max-templates目录、max-spacestyles目录和max-assets目录禁止可执行文件 if (StringUtil.StartsWithIgnoreCase(path, "max-templates/") || StringUtil.StartsWithIgnoreCase(path, "max-spacestyles/") || StringUtil.StartsWithIgnoreCase(path, "max-assets/")) { if (IsExecuteableFile(file)) { Response.Redirect("~/"); return; } } //max-temp和UserFiles目录只允许访问图片 else if (StringUtil.StartsWithIgnoreCase(path, "max-temp/") || StringUtil.StartsWithIgnoreCase(path, "UserFiles/")) { if (IsImageFile(file) == false) { Response.Redirect("~/"); return; } } else if (StringUtil.EndsWithIgnoreCase(file, ".aspx")) { Context.Items.Add("need-compress", true); } #endregion } }
protected void Page_Load(object sender, EventArgs e) { if (VisitorIsOwner) { if (_Request.Get("op", Method.Get) == "apply") { string theme = _Request.Get("theme", Method.Get); if (theme != null) { SpaceBO.Instance.UpdateSpaceTheme(theme); BbsRouter.JumpTo("space/" + SpaceOwnerID); } } } else { AddNavigationItem(string.Concat(AppOwner.Name, "的空间")); } if (_Request.IsClick("articlepassword")) { int articleID = _Request.Get <int>("id", Method.Post, 0); BlogBO.Instance.SaveBlogArticlePassword(MyUserID, articleID, _Request.Get("password", Method.Post)); BbsRouter.JumpTo("space/" + SpaceOwnerID + "/blog/article-" + articleID); } else if (_Request.IsClick("adddoing")) { AddDoing(); } else if (_Request.IsClick("addcomment")) { AddComment(null, null, "boardform"); } else if (_Request.IsClick("CreateImpression")) { MessageDisplay msgDisplay = CreateMessageDisplayForForm("ImpressionForum", "text"); string text = _Request.Get("Text"); bool success; try { success = ImpressionBO.Instance.CreateImpression(My, SpaceOwner, text); if (success == false) { CatchError <ErrorInfo>(delegate(ErrorInfo error) { msgDisplay.AddError(error); }); } else { m_IsShowImpressionInput = false; } } catch (Exception ex) { msgDisplay.AddException(ex); } } else if (_Request.IsClick("DeleteImpression")) { int?typeID = _Request.Get <int>("TypeID"); if (typeID != null) { ImpressionBO.Instance.DeleteImpressionTypeForUser(My, typeID.Value); } } else if (_Request.IsClick("addfeedcomment")) { CreateComment(); } SpaceData spaceData = SpaceBO.Instance.GetSpaceDataForVisit(MyUserID, SpaceOwnerID); m_AlbumList = spaceData.AlbumList; m_ArticleList = spaceData.ArticleList; m_CommentList = spaceData.CommentList; m_DoingList = spaceData.DoingList; m_VisitorList = spaceData.VisitorList; m_FriendList = spaceData.FriendList; m_ShareList = spaceData.ShareList; m_ImpressionList = spaceData.ImpressionList; WaitForFillSimpleUsers <Album>(spaceData.AlbumList); WaitForFillSimpleUsers <BlogArticle>(spaceData.ArticleList); WaitForFillSimpleUsers <Comment>(spaceData.CommentList); WaitForFillSimpleUsers <Doing>(spaceData.DoingList); WaitForFillSimpleUsers <Visitor>(spaceData.VisitorList, 0); WaitForFillSimpleUsers <Friend>(spaceData.FriendList); WaitForFillSimpleUsers <Share>(spaceData.ShareList, 0); WaitForFillSimpleUsers <Impression>(spaceData.ImpressionList); if (IsShowImpressionInput) { m_ImpressionTypeList = ImpressionBO.Instance.GetImpressionTypesForUse(SpaceOwnerID, 8, 4); } if (VisitorIsOwner) { int page = _Request.Get <int>("page", Method.Get, 1); m_ImpressionRecordList = ImpressionBO.Instance.GetTargetUserImpressionRecords(SpaceOwnerID, page, 5); WaitForFillSimpleUsers <ImpressionRecord>(m_ImpressionRecordList, 0); } #region 访问者源判断 string source = _Request.Get("source", Method.Get); switch (source) { case "show": //竞价排名 PointShowBO.Instance.CheckPointShow(My, SpaceOwnerID, IPUtil.GetCurrentIP()); break; } #endregion }
public void ProcessRequest(System.Web.HttpContext context) { int maxId = 0, userId = 0, targetUserID = 0, messageCount = 0; string action = context.Request["issend"]; string data = string.Empty; userId = UserBO.Instance.GetCurrentUserID(); int.TryParse(context.Request["maxid"], out maxId); int.TryParse(context.Request["tuid"], out targetUserID); int.TryParse(context.Request["count"], out messageCount); context.Response.CacheControl = "no-cache"; ChatMessageCollection messages; string validateActionName = "sendmessage"; //messages = ChatBO.Instance.GetMessages(userId, targetUserID, maxId, messageCount); if (action != "true") { messages = ChatBO.Instance.GetLastChatMessages(userId, targetUserID, maxId, messageCount); } else { //ChatMessage message; string content = context.Request["content"]; using (ErrorScope es = new ErrorScope()) { if (!ValidateCodeManager.CheckValidateCode(validateActionName, false)) { context.Response.Write("{state:2,data:'验证码错误'}"); context.Response.End(); return; } else { messages = ChatBO.Instance.SendMessage(userId, targetUserID, content, IPUtil.GetCurrentIP(), true, maxId); } if (es.HasUnCatchedError) { es.CatchError <ErrorInfo>(delegate(ErrorInfo er) { if (!string.IsNullOrEmpty(data)) { data += "<br />"; } data += er.Message; }); context.Response.Write("{state:1,data:'" + StringUtil.ToJavaScriptString(data) + "'}"); context.Response.End(); return; } } //messages = new ChatMessageCollection(); //if (message != null) // messages.Add(message); } data = JsonBuilder.GetJson(messages); context.Response.ClearContent(); if (messages.Count > 0) { context.Response.Write("{state:0,data:" + data + "}"); } else { context.Response.Write("null"); } context.Response.End(); }
public override void AfterExecute(int operatorUserID, string param, bool success, int totalCount, int finishedCount, out string title) { if (success) { title = "删除相片成功,共删除 " + finishedCount + " 张相片"; StringList paramData = StringList.Parse(param); AdminPhotoFilter filter = AdminPhotoFilter.Parse(paramData[0]); if (success) { User operatorUser = UserBO.Instance.GetUser(operatorUserID, GetUserOption.WithAll); Logs.LogManager.LogOperation( new Album_DeletePhotoBySearch(operatorUserID, operatorUser.Name, IPUtil.GetCurrentIP(), filter, finishedCount) ); } } else { title = "删除相片失败"; } }
public override void AfterExecute(int operatorUserID, string param, bool success, int totalCount, int finishedCount, out string title) { if (success) { StringList paramData = StringList.Parse(param); title = "删除" + (paramData[2] == "share" ? "分享" : "收藏") + "成功,共删除 " + finishedCount + " 个" + (paramData[2] == "share" ? "分享" : "收藏"); ShareFilter filter = ShareFilter.Parse(paramData[0]); if (success) { User operatorUser = UserBO.Instance.GetUser(operatorUserID, GetUserOption.WithAll); if (paramData[2] == "share") { Logs.LogManager.LogOperation( new Share_DeleteShareBySearch(operatorUserID, operatorUser.Name, IPUtil.GetCurrentIP(), filter, finishedCount) ); } else { Logs.LogManager.LogOperation( new Favorite_DeleteFavoriteBySearch(operatorUserID, operatorUser.Name, IPUtil.GetCurrentIP(), filter, finishedCount) ); } } } else { title = "删除分享失败"; } }