Salut,
J’intègre l’API Discourse en utilisant RestSharp et je rencontre un problème avec les noms d’utilisateur contenant des caractères non-ASCII (spécifiquement des umlauts allemands). J’ai besoin d’usurper l’identité d’un utilisateur avec le nom d’utilisateur foö (contient ö).
Lorsque j’envoie le nom d’utilisateur brut dans l’en-tête Api-Username, j’obtiens : Request headers must contain only ASCII characters (Les en-têtes de requête ne doivent contenir que des caractères ASCII)
Lorsque j’encode l’URL du nom d’utilisateur (Uri.EscapeDataString("foö") → fo%C3%B), l’authentification échoue avec : {"errors":["Du bist nicht berechtigt, die angeforderte Ressource anzuzeigen. Der API-Benutzername oder -Schlüssel ist ungültig."],"error_type":"invalid_access"} (accès interdit / utilisateur inexistant)
J’utilise une clé API avec des privilèges d’administrateur. Point de terminaison : POST /posts.json pour créer des sujets au nom d’utilisateurs.
Quelle est la bonne façon de transmettre les noms d’utilisateur avec des caractères non-ASCII dans l’en-tête Api-Username ? Devrais-je :
- Utiliser une méthode d’encodage différente ?
- Utiliser plutôt un ID d’utilisateur (si oui, quel nom d’en-tête) ?
- Quelque chose de complètement différent ?
Merci pour toute aide !