Penso che @Jake stia cercando una soluzione programmatica piuttosto che un aggiornamento di configurazione. È meglio se blocchi la tua richiesta nel back-end se non arriva attraverso il canale TLS.
Quello che puoi fare è creare una classe filtro personalizzata ereditata dalla classe ActionFilterAttribute. Quindi puoi sostituire il metodo OnActionExecuting per soddisfare i tuoi requisiti. È possibile verificare la richiesta contro Uri.UriSchemeHttps ed eseguire un'azione appropriata.
Di seguito è riportato un codice di esempio (si noti che sto dando questo esempio: potrebbe non essere adatto al 100% per l'ambiente di produzione).
public class MyHttpsOnlyFilter : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext context)
{
var request = context.Request;
if (request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
var response = request.CreateResponse(HttpStatusCode.Forbidden);
response.Content = new StringContent("This API accepts only HTTPS requests");
context.Response = response;
}
}