Creo que @Jake está buscando una solución programática aquí en lugar de una actualización de configuración. Es mejor si bloquea su solicitud en el back-end si no llega a través del canal TLS.
Lo que puedes hacer es crear una clase de filtro personalizado que se hereda de la clase ActionFilterAttribute. Entonces puede anular el método OnActionExecuting para satisfacer sus necesidades. Puede verificar la solicitud contra Uri.UriSchemeHttps y realizar una acción apropiada.
A continuación se muestra un código de ejemplo (tenga en cuenta que lo estoy dando como ejemplo. Puede que no sea adecuado al 100% para su entorno de producción).
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;
}
}