Erstellen eines neuen Benutzers in Azure Active Directory (B2C) mit der Graph-API unter Verwendung von http post request

Ich habe früher Benutzer programmgesteuert mithilfe der Active Directory-Authentifizierungsbibliothek (ADAL) hinzugefügt, aber jetzt muss ich "signInNames" (= Benutzer-E-Mail) definieren, und das scheint mit ADAL nicht möglich zu sein (bitte sagen Sie mir, wenn ich falsch liege ).

Nun versuche ich, einen neuen Benutzer (lokales Konto) programmgesteuert über HTTP POST hinzuzufügen, indem ich @ foldie Dokumentation zu MSDN.

//Get access token (using ADAL)
var authenticationContext = new AuthenticationContext(AuthString, false);
var clientCred = new ClientCredential(ClientId, ClientSecret);
var authenticationResult = authenticationContext.AcquireTokenAsync(ResourceUrl, clientCred);
var token = authenticationResult.Result.AccessToken;


//HTTP POST CODE
const string mail = "[email protected]";
// Create a new user object.
var user = new CustomUser
{
    accountEnabled = true,
    country = "MS",
    creationType = "LocalAccount",
    displayName = mail,
    passwordPolicies = "DisablePasswordExpiration,DisableStrongPassword",
    passwordProfile = new passwordProfile { password = "jVPmEm)6Bh", forceChangePasswordNextLogin = true },
    signInNames = new signInNames { type = "emailAddress", value = mail }
};

var url = "https://graph.windows.net/" + TenantId + "/users?api-version=1.6";

var jsonObject = JsonConvert.SerializeObject(user);

using (var client = new HttpClient())
{
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);

    var response = client.PostAsync(url,
        new StringContent(JsonConvert.SerializeObject(user).ToString(),
            Encoding.UTF8, "application/json"))
            .Result;

    if (response.IsSuccessStatusCode)
    {
        dynamic content = JsonConvert.DeserializeObject(
            response.Content.ReadAsStringAsync()
            .Result);

        // Access variables from the returned JSON object
        var appHref = content.links.applications.href;
    }
}

Aber ich habe keinen Erfolg und bekomme diese Antwort:

{StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content:....}

Irgendwelche Ideen was ich tun soll? Ich habe erfolgreich Powershell-Skript verwendet, muss dies jedoch in meiner C # -App tun.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage