public static IActionResult HandlePost(NewController controller, string type, Paste edits = null) { if (controller.Request.Method != "POST" || controller.Request.Form.IsEmpty()) { Console.Error.WriteLine("Refused paste: Non-Post"); return(RejectPaste(controller, type)); } IPAddress remoteAddress = controller.Request.HttpContext.Connection.RemoteIpAddress; string realOrigin = remoteAddress.ToString(); string sender = IgnoredOrigins.Contains(realOrigin) ? "" : $"Remote IP: {realOrigin}"; if (controller.Request.Headers.TryGetValue("X-Forwarded-For", out StringValues forwardHeader)) { sender += ", X-Forwarded-For: " + string.Join(" / ", forwardHeader); if (PasteServer.TrustXForwardedFor && forwardHeader.Count > 0) { realOrigin = string.Join(" / ", forwardHeader); } } if (controller.Request.Headers.TryGetValue("REMOTE_ADDR", out StringValues remoteAddr)) { sender += ", REMOTE_ADDR: " + string.Join(" / ", remoteAddr); } if (sender.StartsWith(", ")) { sender = sender[(", ".Length)..];
public static IActionResult RejectPaste(NewController controller, string type) { return(controller.View("Index", new NewPasteModel() { ShowRejection = true, NewType = type })); }