Existe-t-il une documentation sur l'utilisation de [Restrict]
attribut avec la pile de services ?
Ne trouvant aucune documentation, j'ai commencé à essayer de résoudre ce problème. J'ai découvert que vous devez activer les restrictions dans AppHost.cs Configurer l'évènement avec
var endpointHostConfig = new EndpointHostConfig
{
EnableAccessRestrictions = true,
};
J'ai ensuite ajouté des attributs à ma DTO de demande :
[Route("Hello/World", "GET")]
[Restrict(EndpointAttributes.InternalNetworkAccess)]
Cela ne fonctionne pas... on dirait que cela supprime toutes les restrictions par défaut et les remplace par cette seule restriction ? L'utilisation de cette option semble fonctionner :
[Restrict(InternalOnly = true)]
Lorsque je fais un GET depuis le réseau local, cela fonctionne, mais pas depuis le réseau distant. Intéressant, l'erreur de pile détaillée qu'il donne à distance est la suivante :
Les restrictions suivantes n'ont pas été respectées : ' \n -[InternalNetworkAccess, Secure, HttpHead, HttpPost, HttpPut, HttpDelete, HttpOther, OneWay, Soap11, Soap12, Xml, Jsv, ProtoBuf, Csv, Html, Yaml, MsgPack, FormatOther, AnyEndpoint]''.
Notez qu'il ne mentionne même pas HttpGet comme l'une des possibilités - qui fonctionne pourtant. Il mentionne également Secure et non InSecure... aucun des deux n'étant spécifiquement requis.
Peut-on avoir des éclaircissements sur la façon dont cela est censé fonctionner ? Et si je voulais exiger le SSL, comment le préciser ?
Que se passe-t-il si je veux exiger SSL en production, mais pas en phase de test sur tous les services pour ce point d'accès ? (Je réalise que cela peut être une manière complètement différente de configurer).