public override void OnAuthorization(AuthorizationContext filterContext)
        {
            //no1: 判断是否登录
            var user        = filterContext.HttpContext.Session?["User"] as UserDto;
            var controller  = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
            var action      = filterContext.ActionDescriptor.ActionName;
            var method      = filterContext.HttpContext.Request.HttpMethod;
            var url         = filterContext.HttpContext.Request.RawUrl;
            var categoryKey = filterContext.HttpContext.Request.QueryString["CategoryKey"];

            if (user != null)
            {
                var token = CacheHelper.GetCache(user.LoginName);
                var info  = AuthConfigXmlHelper.GetAuthConfigByXml(Api.PhysicsUrl + "/Config/AuthConfig.xml"
                                                                   , url, controller, action, method, categoryKey);
                _roles = BusinessHelper.BreakUpOptions(info.Roles, ',');

                if (!AuthManager.TryAuthorize(filterContext, token.ToString(), _roles))
                {
                    var respMessage = ResponseProvider.Error("你没有被授权访问此资源。", 401);
                    //异常处理模块接入
                }
            }


            base.OnAuthorization(filterContext);
        }
Esempio n. 2
0
 public override void OnAuthorization(HttpActionContext context)
 {
     if (!AuthManager.TryAuthorize(context, _roles))
     {
         var respMessage = ResponseProvider.Error("你没有被授权访问此资源。", 401);
         context.Response = context.Request.CreateResponse(HttpStatusCode.OK, respMessage);
     }
 }
        public void OnException(ExceptionContext context)
        {
            if (!(context.ActionDescriptor is ControllerActionDescriptor))
            {
                return;
            }

            if (!(context.Exception is UserFriendlyException))
            {
                return;
            }
            var serverResponse = ResponseProvider.Error(default(BaseResponseEmpty), context.Exception.Message);

            context.Result = new BadRequestObjectResult(serverResponse);

            context.Exception = null;
        }
        /// <summary>
        ///     上传本地文件(本地路径)
        /// </summary>
        /// <param name="key">用于获取阿里云的中图片的唯一值</param>
        /// <param name="fileToUpload">本地路径</param>
        public static ServerResponse <FileData> UpLoad(string key, string fileToUpload)
        {
            //          var fileExtensionName = Path.GetExtension(fileToUpload); //文件扩展名
            //var upLoadPath = "/Upload/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/";
            var filePath = $"{key}"; //云文件保存路径

            try
            {
                Client.PutObject(Config.BucketName, filePath, fileToUpload);
                var fielData = new FileData
                {
                    Url = Config.BucketName + "." + Config.Endpoint + "/" + filePath
                };
                return(ResponseProvider.Success(fielData, "成功"));
            }
            catch (Exception ex)
            {
                return(ResponseProvider.Error <FileData>(ex.Message));
            }
        }
        /// <summary>
        ///     删除
        /// </summary>
        public static ServerResponse Remove(string key)
        {
            try
            {
                var listResult         = Client.ListObjects(Config.BucketName);
                var ossObjectSummaries = listResult.ObjectSummaries.FirstOrDefault(x => x.Key == key);
                if (ossObjectSummaries != null)
                {
                    Client.DeleteObject(Config.BucketName, ossObjectSummaries.Key);
                }

                return(ResponseProvider.Success("成功"));
            }
            catch (OssException ex)
            {
                return(ResponseProvider.Error("失败" + ex.Message));
            }
            catch (Exception ex)
            {
                return(ResponseProvider.Error("失败" + ex.Message));
            }
        }
Esempio n. 6
0
 public override void OnException(HttpActionExecutedContext context)
 {
     //业务异常
     if (context.Exception is UserFriendlyException)
     {
         context.Response = new HttpResponseMessage
         {
             StatusCode = System.Net.HttpStatusCode.OK,
             Content    = new ObjectContent <ServerResponse>(
                 ResponseProvider.Error(context.Exception.Message),
                 new JsonMediaTypeFormatter())
         };
     }
     //其它异常
     else
     {
         context.Response = new HttpResponseMessage
         {
             StatusCode = System.Net.HttpStatusCode.InternalServerError
         };
     }
 }
        /// <summary>
        /// AsError
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public virtual IActionResult AsErrorJson(string message)
        {
            var serverResponse = ResponseProvider.Error(default(BaseResponseEmpty), message);

            return(Ok(serverResponse));
        }
        /// <summary>
        /// AsError
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="data"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public virtual IActionResult AsErrorJson <T>(T data, string message)
        {
            var serverResponse = ResponseProvider.Error(data, message);

            return(Ok(serverResponse));
        }
        /// <summary>
        /// AsError
        /// </summary>
        /// <param name="response"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public static Response AsErrorJson(this IResponseFormatter response, string message)
        {
            var serverResponse = ResponseProvider.Error(message);

            return(response.AsJson(serverResponse));
        }
        /// <summary>
        /// AsError
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="response"></param>
        /// <param name="data"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public static Response AsErrorJson <T>(this IResponseFormatter response, T data, string message) where T : class
        {
            var serverResponse = ResponseProvider.Error(data, message);

            return(response.AsJson(serverResponse));
        }