123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using Microsoft.AspNetCore.Mvc.Abstractions;
- using Microsoft.AspNetCore.Mvc.ActionConstraints;
- using Microsoft.AspNetCore.Routing;
- using System;
- namespace WMS.BZWeb.Extensions
- {
- /// <summary>
- /// 描 述:仅允许Ajax操作
- /// </summary>
- [AttributeUsage(AttributeTargets.Method)]
- public class AjaxOnlyAttribute : ActionMethodSelectorAttribute
- {
- /// <summary>
- /// 验证请求有效性
- /// </summary>
- /// <param name="routeContext"></param>
- /// <param name="action"></param>
- /// <returns></returns>
- public override bool IsValidForRequest(RouteContext routeContext, ActionDescriptor action)
- {
- return routeContext.HttpContext.Request.IsAjax();
- }
- }
- public static class HttpRequestExtensions
- {
- /// <summary>
- /// 判断是否是ajax请求
- /// </summary>
- /// <param name="req"></param>
- /// <returns></returns>
- 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;
- }
- }
- }
|