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); }
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)); } }
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)); }