Exemple #1
0
        /// <summary>
        /// 写数据库
        /// </summary>
        /// <param name="e"></param>
        private void WriteDatabase(ExceptionContext filterContext)
        {
            string controllerName = filterContext.RouteData.Values["controller"].ToString();
            string actionName     = filterContext.RouteData.Values["action"].ToString();
            string httpMethod     = filterContext.HttpContext.Request.HttpMethod;

            SyLogErrorAdd data = new SyLogErrorAdd();

            data.ControllerName = controllerName;
            data.ActionName     = actionName;
            data.HttpMethod     = httpMethod;
            data.Url            = filterContext.HttpContext.Request.FilePath;
            data.Message        = filterContext.Exception.Message;
            data.CreateIp       = Common.Function.GetIp(filterContext.HttpContext.Request);
            data.CreateTime     = DateTime.Now;

            if (filterContext.HttpContext.Session["UserInfo"] != null)
            {
                VModel.SyPassport.UserInfo user = filterContext.HttpContext.Session["UserInfo"] as VModel.SyPassport.UserInfo;
                if (user != null)
                {
                    data.CreateUserId   = user.Id;
                    data.CreateUserName = user.Name;
                    data.CreateAccount  = user.Account;
                }
            }

            BigdataBll.SyLogErrorWeb_Add(data);
        }
Exemple #2
0
        /// <summary>
        /// 渲染结束
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            GetTimer(filterContext, "render").Stop();

            string controllerName = filterContext.RouteData.Values["controller"].ToString();
            string actionName     = filterContext.RouteData.Values["action"].ToString();
            string httpMethod     = filterContext.HttpContext.Request.HttpMethod;

            var actionTimer = GetTimer(filterContext, "action");
            var renderTimer = GetTimer(filterContext, "render");

            SyLogMonitorAdd data = new SyLogMonitorAdd();

            data.ControllerName = controllerName;
            data.ActionName     = actionName;
            data.HttpMethod     = httpMethod;
            data.Url            = filterContext.HttpContext.Request.FilePath;
            data.CreateIp       = Common.Function.GetIp(filterContext.HttpContext.Request);
            data.CreateTime     = DateTime.Now;
            data.ResponseTime   = Convert.ToDecimal(actionTimer.Elapsed.TotalSeconds);
            data.RenderTime     = Convert.ToDecimal(renderTimer.Elapsed.TotalSeconds);
            if (filterContext.HttpContext.Session["UserInfo"] != null)
            {
                VModel.SyPassport.UserInfo user = filterContext.HttpContext.Session["UserInfo"] as VModel.SyPassport.UserInfo;
                if (user != null)
                {
                    data.CreateUserId   = user.Id;
                    data.CreateUserName = user.Name;
                    data.CreateAccount  = user.Account;
                }
            }
            BigdataBll.SyLogMonitorWeb_Add(data);

            base.OnResultExecuted(filterContext);
        }
Exemple #3
0
 public void OnAuthorization(AuthorizationContext filterContext)
 {
     if (!filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true))
     {
         VModel.SyPassport.UserInfo userInfo = filterContext.HttpContext.Session["UserInfo"] as VModel.SyPassport.UserInfo;
         if (userInfo == null)
         {
             if (filterContext.HttpContext.Request.IsAjaxRequest())
             {
                 ContentResult cr = new ContentResult();
                 cr.Content           = "<p style=\"padding:30px 0 30px 0;text-align:center\">你的账号已经下线了请回到首页</p><p style=\"text-align:center;margin:10px 0 20px 0;\"><a href=\"/SyPassport/Login\" style=\"display:inline-block;width:80px;height:30px;line-height:30px;background-color:#36aa9d;color:#fff;text-align:center;\">重新登录</a></p>";
                 cr.ContentType       = "application/x-javascript";
                 filterContext.Result = cr;
             }
             else
             {
                 filterContext.Result = new RedirectResult("/SyPassport/Login");
             }
         }
     }
 }
        public ActionResult Login(int?id)
        {
            VModel.SyPassport.UserInfo userinfo = Session["UserInfo"] as VModel.SyPassport.UserInfo;
            if (userinfo != null)
            {
                switch (userinfo.Type)
                {
                case 12:
                case 26:
                case 27:
                    return(RedirectToAction("Index", "ResourceHome"));

                case 4:
                    return(RedirectToAction("Index", "SyUserManager"));
                }
            }

            VModel.SyPassport.LoginModel m = new VModel.SyPassport.LoginModel();
            m.Account = Common.CookieHelper.GetCookieValue("account");
            m.pwd2    = Common.CookieHelper.GetCookieValue("pwd");
            m.ChkPwd  = m.Account != null && m.Account.Trim() != "" ? true : false;
            m.SId     = id;
            return(View(m));
        }
Exemple #5
0
        /// <summary>
        /// 根据帐号获取用户信息
        /// </summary>
        /// <param name="account"></param>
        /// <returns></returns>
        public static VModel.SyPassport.UserInfo GetUserInfo(string account)
        {
            VModel.SyPassport.UserInfo userinfo = null;
            using (var db = new fz_basicEntities())
            {
                sy_user user = db.sy_user.Where(w => w.Account == account.Trim()).FirstOrDefault();

                if (user != null)
                {
                    userinfo         = new VModel.SyPassport.UserInfo();
                    userinfo.Id      = user.Id;
                    userinfo.Account = user.Account;
                    userinfo.Name    = user.Name;
                    userinfo.Type    = user.Type;
                    userinfo.Navs    = db.sy_nav.Where(w => w.sy_role.Where(w1 => w1.sy_user_and_role.Where(w2 => w2.UserId == user.Id && w2.sy_role.IsEnabled == true).Any()).Any()).Select(s => s.Id).ToArray();

                    var sids  = db.sy_nav.Where(w => userinfo.Navs.Contains(w.Id)).Select(s => s.SId).Distinct();
                    var spids = db.sy_system.Where(w => sids.Contains(w.Id)).Select(s => s.PId);
                    userinfo.SysNavs = db.sy_system.Where(w => sids.Contains(w.Id) || spids.Contains(w.Id)).Select(s => s.Id).ToArray();
                }
            }

            return(userinfo);
        }
        public ActionResult Login(VModel.SyPassport.LoginModel m)
        {
            if (ModelState.IsValid)
            {
                int check = Bll.SyLoginBll.Check(m.Account, m.Password);

                switch (check)
                {
                case 1:    //验证成功
                    string ticket = Guid.NewGuid().ToString();

                    //记录密码
                    if (m.ChkPwd)
                    {
                        Common.CookieHelper.SetCookie("account", m.Account, DateTime.Now.AddDays(30));
                        Common.CookieHelper.SetCookie("pwd", m.Password, DateTime.Now.AddDays(30));
                    }
                    else
                    {
                        Common.CookieHelper.ClearCookie("account");
                        Common.CookieHelper.ClearCookie("pwd");
                    }

                    VModel.SyPassport.UserInfo userinfo = Bll.SyLoginBll.GetUserInfo(m.Account);
                    userinfo.ticket     = ticket;
                    Session["UserInfo"] = userinfo;

                    Bll.SyUserTicketBll.Add(ticket, m.Account, Common.Function.GetIp(Request)); //将凭证写到数据库中

                    Common.CookieHelper.SetCookie("t", ticket);                                 //将凭证写到Cookie

                    //页面跳转
                    string url = "";
                    if (m.SId == null)
                    {
                        switch (userinfo.Type)
                        {
                        case 12:
                            url = "/ResourceHome/Index";
                            break;

                        case 26:
                            return(Content("尚未开通学生用户功能!"));

                        case 27:
                            return(Content("尚未开通家长用户功能!"));

                        case 4:
                            url = "/SyUserManager/Index";
                            break;
                        }
                    }
                    else
                    {
                        Common.Dict.Model_System sys = Common.Dict.MySystem.GetVal((int)m.SId);
                        string homeUrl = sys == null ? "" : sys.DomainUrl + sys.HomeUrl;
                        if (Bll.SyLoginBll.IsSameDomain(""))
                        {
                            url = homeUrl;
                        }
                        else
                        {
                            url = string.Format("{0}?t={1}", homeUrl, ticket);
                        }
                    }
                    return(Redirect(url));

                case -1:
                    ModelState.AddModelError("Account", "你输入的用户名不存在!");
                    break;

                case -2:
                    ModelState.AddModelError("Password", "你输入的密码有误!");
                    break;

                case -3:
                    ModelState.AddModelError("Account", "你输入的用户名已停用!");
                    break;

                case -4:
                    ModelState.AddModelError("Account", "学生相关功能尚未开通!");
                    break;
                }
            }
            return(View(m));
        }
Exemple #7
0
 /// <summary>
 /// 构造函数
 /// </summary>
 public BaseController()
 {
     userInfo = System.Web.HttpContext.Current.Session["UserInfo"] as VModel.SyPassport.UserInfo;
 }