2016-03-30 19 views
0

Ich bin neu in Azure API-Verwaltung Rest Service. Ich habe eine neue API-Verwaltung mit einer sharedaccesstoken erstellt.Erstellen Sie einen Benutzer über die Azure API-Verwaltung Restdienst

using (HttpClient httpClient = new HttpClient()) 
{ 
    var request = new HttpRequestMessage(HttpMethod.Post, requestUrl); 
    request.Headers.Authorization = 
    new AuthenticationHeaderValue("SharedAccessSignature", sharedAccessSignature); 
    request.Content = new StringContent("{\"accountEnabled\": true,\"creationType\": \"LocalAccount\",\"displayName\": \"Alex Wu\",\"passwordProfile\": {\"password\": \"Test1234\",\"forceChangePasswordNextLogin\": false},\"signInNames\": [{\"type\": \"userName\",\"value\": \"AlexW\"},{\"type\": \"emailAddress\",\"value\": \"[email protected]\"}]}"); 
    HttpResponseMessage response = await httpClient.SendAsync(request); 
    response.EnsureSuccessStatusCode(); 
    responseBody = await response.Content.ReadAsStringAsync(); 
} 

Wenn ich den Code ausführen oben ich einen Fehler:

{StatusCode: 405, ReasonPhrase: 'Method Not Allowed', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:{ Date: Wed, 30 Mar 2016 19:38:15 GMT Content-Length: 73 Allow: GET Content-Type: application/json; charset=utf-8}} 

jemand mich nach vorne, so bewegen helfen Kann ich in der Lage sein, neue Benutzer über die REST-Service zu erstellen.

Antwort

0

Ich habe gerade gelesen auf die API-Referenz in https://msdn.microsoft.com/en-us/library/dn776330.aspx#CreateUser angegeben.

Zunächst sollten Sie HttpMethod.Put anstelle von Post verwenden. Der Anfragepfad sollte die Basis-URL +/users/{unique uid} sein. Wie ich feststellen kann, sind die Attribute, die Sie übergeben möchten, für diese Transaktion nicht verfügbar.

Wenn es etwas anderes ist, das Sie tatsächlich erreichen möchten, erstellen Sie eine Azure API Management-Benutzereinheit, bitte geben Sie einen Rat und ich werde versuchen, Sie weiter zu führen.

0

Ihre Antwort hat mir in der Tat geholfen. Unterhalb der Implementierung, die mich dazu gebracht hat, meine Aufgabe zu erfüllen.

string requestUrl = string.Format("{0}/users/{1}?api-version={2}", baseUrl, userGuid, apiVersion); 
      string responseBody = null; 
      try 
      { 
       using (HttpClient httpClient = new HttpClient()) 
       { 
var request = new HttpRequestMessage(HttpMethod.Put, requestUrl); 
         request.Headers.Authorization = 
          new AuthenticationHeaderValue("SharedAccessSignature", sharedAccessSignature); 
         request.Content = new StringContent("{\"firstName\": \"MyFirstName\",\"lastName\": \"MyLastName\",\"email\": \"[email protected]\",\"password\": \"Password;\",\"state\": \"active\"}", Encoding.UTF8,"application/json"); 
         HttpResponseMessage response = await httpClient.SendAsync(request);`enter code here` 
         response.EnsureSuccessStatusCode(); 
         responseBody = await response.Content.ReadAsStringAsync(); 
} 
      } 
Verwandte Themen