2016-05-19 3 views
3

J'essaie de savoir si une adresse e-mail est déjà prise dans mon annuaire Azure AD B2C. Je code mon adresse e-mail de la même manière que mon adresse e-mail est encodée lorsque je reçois tous les utilisateurs. J'ai le sentiment d'être proche, s'il est même possible d'interroger par adresse email.Rechercher un utilisateur par adresse e-mail

Actuellement, toutes les choses que j'ai essayé soit retournent un 400 ou un 404. Est-ce que quelqu'un sait s'il y a un moyen de requête par adresse e-mail (nom de connexion)?

EDIT

Sur un thème similaire, je suis aussi d'essayer une requête pour modifier le mot de passe d'un utilisateur en vain. Je me dis que si je peux faire fonctionner la requête, je peux la faire fonctionner de l'autre.

Répondre

2

Jetez un oeil à la mise en œuvre B2C.exe, d'abord obtenir que le travail: https://azure.microsoft.com/nl-nl/documentation/articles/active-directory-b2c-devquickstarts-graph-dotnet/

Vous remarquerez que l'utilisateur est référencé par GUID ou par UPN, et non par e-mail! Les e-mails sont dans la collection signInNames

Pour interroger sur l'adresse e-mail, vous devez spécifier un filtre: https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/users-operations#GetUsers

Commencez avec les GetUsers (pour obtenir tous les utilisateurs), puis mettre à jour le mot de passe et dernier filtre.

+0

Merci, je ne l'ai pas inclus sur ma question, mais j'ai essayé d'utiliser l'objet utilisateur et je n'ai pas de joie non plus. Je peux cependant récupérer avec succès une liste de tous les utilisateurs. –

+0

Pouvez-vous ajouter des utilisateurs? Très probablement un problème avec le json que vous avez envoyé, comment ça se passe? –

+0

Oui, je peux ajouter des utilisateurs bien. J'envoie exactement le contenu requis et l'utilisateur est bien créé. Je peux aussi faire une requête GET pour tous les utilisateurs. Mais ne peut toujours pas récupérer les détails d'un seul utilisateur. –

4

Puisqu'il s'agit d'une odata, vous pouvez interroger en utilisant la syntaxe odata. Syntaxe OData here

var queryString = HttpUtility.ParseQueryString(string.Empty); 
queryString["api-version"] = "1.6"; 
queryString["$filter"] = "signInNames/any(x:x/value eq '[email protected]')"; 

string url = "https://graph.windows.net/" + tenant + "/users"+ "?" + queryString; 

filtre $ fait le tour

queryString [ "filtre $"] = "signInNames/any (x: x/eq value '[email protected]')" ;