Se a filtragem de solicitações não puder lidar com isso, tente ' URL Rewrite ' a free Add -A partir da Microsoft e muito útil de qualquer maneira.
Crie uma regra como esta:
<rule name="NoUserAgent" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_USER_AGENT}" pattern="^$" />
</conditions>
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="You did not present a User-Agent header which is required for this site" />
</rule>
Durante um teste rápido, isso funcionou tanto para um agente de usuário vazio quanto para um ausente.
Estou usando a expressão regular '^ $', que é válida apenas para uma string vazia.
Você também pode retornar um 404 ou o que você quiser, em vez de um 403.