public override void OnActionExecuting(ActionExecutingContext filterContext)
 {
     if (filterContext == null || filterContext.HttpContext == null)
     {
         return;
     }
     if (_ignore)
     {
         return;
     }
     if (filterContext.HttpContext.User.Identity.IsAuthenticated)
     {
         var userName = filterContext.HttpContext.User.Claims.First().Value;
         filterContext.HttpContext.Request.Cookies.TryGetValue("ShuAdminCookie", out string value);
         return;
     }
     else
     {
         var returnedData = new ReturnedDataResult()
         {
             Status  = ReturnedStatus.LoginOut,
             Message = "对不起,您没有登录或登录已超时!"
         };
         filterContext.Result = new JsonNetResult(returnedData);
     }
 }
 public JsonNetResult(object data)
 {
     _returnedData = new ReturnedDataResult()
     {
         Data = data, Status = ReturnedStatus.Success
     };
 }
 public override async Task Invoke(AspectContext context, AspectDelegate next)
 {
     try
     {
         await context.Invoke(next);
     }
     catch (Exception ex)
     {
         if (!ex.Message.EndsWith($"-{ReturnedStatus.AbnormalCode}."))
         {
             var logService = FrameWorkService.ServiceProvider.GetService <ISysAbnormalLogService>();
             var log        = new Sys_AbnormalLog();
             log.Body         = context.Parameters.ObjectToJson();
             log.ErrorMessage = ex.ToString();
             log.RequestUrl   = context.ImplementationMethod.ReflectedType.FullName + "." + context.ImplementationMethod.Name;
             log.ClientIp     = FrameWorkService.ServiceProvider.GetService <IHttpContextAccessor>().HttpContext.Connection.RemoteIpAddress.ToString();
             log.SetUserToModelCreate();
             var id           = logService.InsertReturnIdentity(log);
             var returnedData = new ReturnedDataResult()
             {
                 Status  = ReturnedStatus.AbnormalCode,
                 Message = $"请联系开发人员 logid:{id}!"
             };
             ////创建并返回继承自ReturnedResult的return对象
             if (context.ProxyMethod.ReturnType == typeof(ReturnedDataResult))
             {
                 context.ReturnValue = returnedData;
             }
             else
             {
                 throw new Exception($"@{returnedData.Message}-{ returnedData.Status }");
             }
         }
         else
         {
             if (context.ProxyMethod.ReturnType == typeof(ReturnedDataResult))
             {
                 context.ReturnValue = new ReturnedDataResult()
                 {
                     Status  = ReturnedStatus.AbnormalCode,
                     Message = ex.Message.Substring(ex.Message.IndexOf("@") + 1).Replace($"-{ReturnedStatus.AbnormalCode}.", string.Empty)
                 };
             }
             else
             {
                 throw new Exception(ex.Message);
             }
         }
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 用户登录验证
        /// </summary>
        /// <param name="userLoginView">{ "language":"zh_cn","inputView":{"UserName":"******","Password":"******"}}</param>
        /// <returns></returns>
        public ReturnedDataResult LoginVerify(InputModel <Sys_User> userLoginView)
        {
            var result = new ReturnedDataResult {
                Status = ReturnedStatus.Error
            };

            if (userLoginView?.InputView == null)
            {
                result.Message = "用户名或密码不正确";
                return(result);
            }
            var loginInputView = userLoginView.InputView;
            var inputUserName  = loginInputView.UserName;
            var inputPassword  = loginInputView.Password;

            if (string.IsNullOrEmpty(inputUserName) || string.IsNullOrEmpty(inputPassword))
            {
                result.Message = "用户名或密码不正确";
                return(result);
            }
            var userEntity = this.Get(t => t.UserName == inputUserName);

            if (userEntity == null)
            {
                result.Message = "用户名或密码不正确";
                return(result);
            }
            if (string.Compare(userEntity.Password, inputPassword) != 0)
            {
                result.Message = "用户名或密码不正确";
                return(result);
            }
            //登录用户信息
            var userLoginedViewModel = new Sys_User()
            {
                Id       = userEntity.Id,
                UserName = userEntity.UserName,
                FullName = userEntity.FullName,
            };

            result.Message = "登录成功";
            result.Data    = userLoginedViewModel;
            result.Status  = ReturnedStatus.Success;
            return(result);
        }
        /// <summary>
        /// 异常返回 控制器异常
        /// </summary>
        /// <param name="actionContext"></param>
        public void OnException(ExceptionContext context)
        {
            var id = 0;

            if (context.Exception != null)
            {
                var logService = FrameWorkService.ServiceProvider.GetService <ISysAbnormalLogService>();
                var log        = new Sys_AbnormalLog();
                log.Body         = "";
                log.ErrorMessage = context.Exception.ToString();
                log.RequestUrl   = context.HttpContext.Request.Path;
                log.ClientIp     = string.Empty;
                log.SetUserToModelCreate();
                id = logService.InsertReturnIdentity(log);
            }
            var returnedData = new ReturnedDataResult()
            {
                Status  = ReturnedStatus.Error,
                Message = $"请联系开发人员 logid:{id}!"
            };

            context.Result = new JsonResult(returnedData);
        }
 public JsonNetResult(ReturnedDataResult returnedData)
 {
     this._returnedData = returnedData;
 }