using Microsoft.AspNetCore.Mvc.Abstractions; using Microsoft.AspNetCore.Mvc.ActionConstraints; using Microsoft.AspNetCore.Routing; using System; namespace WMS.BZWeb.Extensions { /// /// 描 述:仅允许Ajax操作 /// [AttributeUsage(AttributeTargets.Method)] public class AjaxOnlyAttribute : ActionMethodSelectorAttribute { /// /// 验证请求有效性 /// /// /// /// public override bool IsValidForRequest(RouteContext routeContext, ActionDescriptor action) { return routeContext.HttpContext.Request.IsAjax(); } } public static class HttpRequestExtensions { /// /// 判断是否是ajax请求 /// /// /// public static bool IsAjax(this HttpRequest req) { bool result = false; var xreq = req.Headers.ContainsKey("x-requested-with"); if (xreq) { result = req.Headers["x-requested-with"] == "XMLHttpRequest"; } return result; } } }