2 votes

Comment utiliser l'attribut "Restrict" dans la pile de services ?

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).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X