34 lines
836 B
C#
34 lines
836 B
C#
![]() |
using Microsoft.AspNetCore.Mvc.Abstractions;
|
|||
|
using Microsoft.AspNetCore.Mvc.ActionConstraints;
|
|||
|
using Microsoft.AspNetCore.Routing;
|
|||
|
using System;
|
|||
|
|
|||
|
namespace HT.Cloud.Code
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// ajax验证
|
|||
|
/// </summary>
|
|||
|
[AttributeUsage(AttributeTargets.Method)]
|
|||
|
public class HandlerAjaxOnlyAttribute : ActionMethodSelectorAttribute
|
|||
|
{
|
|||
|
public bool Ignore { get; set; }
|
|||
|
|
|||
|
public HandlerAjaxOnlyAttribute(bool ignore = false)
|
|||
|
{
|
|||
|
Ignore = ignore;
|
|||
|
}
|
|||
|
|
|||
|
public override bool IsValidForRequest(RouteContext routeContext, ActionDescriptor action)
|
|||
|
{
|
|||
|
if (Ignore)
|
|||
|
return true;
|
|||
|
bool result = false;
|
|||
|
var xreq = routeContext.HttpContext.Request.Headers.ContainsKey("x-requested-with");
|
|||
|
if (xreq)
|
|||
|
{
|
|||
|
result = routeContext.HttpContext.Request.Headers.ContainsKey("x-requested-with");
|
|||
|
}
|
|||
|
return result;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|