Если вы не можете коснуться кода, я вижу единственное решение - проверьте с помощью промежуточного программного обеспечения.Давайте представим, что маршрут, доступ к которому вы хотите ограничить, - это POST «/ users / register», поэтому вы можете использовать ActionFilter, зарегистрированный глобально, при запуске, в котором вы проверяете url, а если его URL-адрес «/ users / register», вы пытаетесь проверить токен иесли токен недействителен - верните 401.
Также вы можете использовать связующее ПО Owin
Вот простой пример реализации такой логики с использованием ActionFilter
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configuration.Filters.Add(new CheckAuthorizationFilterAttribute());
GlobalConfiguration.Configure(WebApiConfig.Register);
}
}
public class CheckAuthorizationFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
var requestUri = actionContext.Request.RequestUri.AbsolutePath;
if (requestUri == "/api/users/register")
{
var isTokenValid = ValidateToken();
if (!isTokenValid)
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
return;
}
}
public bool ValidateToken() => false;
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
}
}