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