aboutsummaryrefslogtreecommitdiff
path: root/Timeline/Filters
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-08-19 22:52:01 +0800
committer杨宇千 <crupest@outlook.com>2019-08-19 22:52:01 +0800
commit87513987a23ecd75cd21015ed215bae3b279d8c5 (patch)
tree5725e61da570be86173472d68bd6df521e593b65 /Timeline/Filters
parent72ab8e49929d528b7cb461ba90ad86691a3f437b (diff)
downloadtimeline-87513987a23ecd75cd21015ed215bae3b279d8c5.tar.gz
timeline-87513987a23ecd75cd21015ed215bae3b279d8c5.tar.bz2
timeline-87513987a23ecd75cd21015ed215bae3b279d8c5.zip
Add check for content in avatar put.
Diffstat (limited to 'Timeline/Filters')
-rw-r--r--Timeline/Filters/ContentHeaderAttributes.cs48
1 files changed, 48 insertions, 0 deletions
diff --git a/Timeline/Filters/ContentHeaderAttributes.cs b/Timeline/Filters/ContentHeaderAttributes.cs
new file mode 100644
index 00000000..14685a01
--- /dev/null
+++ b/Timeline/Filters/ContentHeaderAttributes.cs
@@ -0,0 +1,48 @@
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Filters;
+using Timeline.Models.Http;
+
+namespace Timeline.Filters
+{
+ public class RequireContentTypeAttribute : ActionFilterAttribute
+ {
+ public override void OnActionExecuting(ActionExecutingContext context)
+ {
+ if (context.HttpContext.Request.ContentType == null)
+ {
+ context.Result = new BadRequestObjectResult(CommonResponse.MissingContentType());
+ }
+ }
+ }
+
+ public class RequireContentLengthAttribute : ActionFilterAttribute
+ {
+ public RequireContentLengthAttribute()
+ : this(true)
+ {
+
+ }
+
+ public RequireContentLengthAttribute(bool requireNonZero)
+ {
+ RequireNonZero = requireNonZero;
+ }
+
+ public bool RequireNonZero { get; set; }
+
+ public override void OnActionExecuting(ActionExecutingContext context)
+ {
+ if (context.HttpContext.Request.ContentLength == null)
+ {
+ context.Result = new BadRequestObjectResult(CommonResponse.MissingContentLength());
+ return;
+ }
+
+ if (RequireNonZero && context.HttpContext.Request.ContentLength.Value == 0)
+ {
+ context.Result = new BadRequestObjectResult(CommonResponse.ZeroContentLength());
+ return;
+ }
+ }
+ }
+}