2017-06-14 4 views
0

Ich müde verschiedene Ressourcen, aber konnte keine Antwort auf meine Frage finden, wenn diese Frage woanders beantwortet wurde dann bitte senden Sie mir den Link für die Antwort.Verwendung Authentifizierungstoken in Ruhe C#

Ich habe Restful Service zu konsumieren, dazu muss ich Authentifizierung zuerst verwenden. gut, das funktioniert gut, ich verwaltete die Authentifizierung und ich bekomme das Authentifizierungstoken.

jetzt, wenn ich den Service, den ich will, ich bekomme bekommen Der Remote-Server einen Fehler zurückgegeben: (401) Nicht autorisiert.

Es gibt keinen Platz im Dienst, um das Token zu verwenden.

habe ich ein einfaches C# Programm zu tun, dass es enthält zwei Tasten Taste 1: wird der Benutzer authentifiziert (funktioniert gut und ich bekomme das Token) Taste 2: Hauptdienst verwendet (funktioniert nicht und erhält Unerlaubte)

hier ist mein code bitte beraten wie sollte ich das authentifizierungs-token verwenden.

private void button1_Click(object sender, EventArgs e) 
{ 
     var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://apps.ramm.co.nz:443/RammApi6.1/v1/authenticate/login"); 
     httpWebRequest.ContentType = "application/json"; 
     httpWebRequest.Method = "POST"; 

     using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
     { 
       string json = "{\"database\":\"RAMM API Demo\"," + 
           " \"userName\":\"api_demo\"," + 
           "\"password\":\"thursday\"}"; 

       streamWriter.Write(json); 
       streamWriter.Flush(); 
       streamWriter.Close(); 
     } 

     var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
     using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
     { 
      var result = streamReader.ReadToEnd(); 
     } 
} 

.............

private void button2_Click(object sender, EventArgs e) 
{ 
    var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://apps.ramm.co.nz:443/RammApi6.1/v1/data/table"); 
    httpWebRequest.ContentType = "application/json"; 
    httpWebRequest.Method = "POST"; 

    using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
    { 
       string json = "{ \"tableName\": \"carr_way\" " + 
           ", \"expandLookups\": \"False\" " + 
           ", \"getGeometry\": \"True\" " + 
           ", \"loadType\": \"Specified\" " + 
           ", \"columns\": [\"carr_way_no\", \"road_id\", \"carrway_start_m\", \"carrway_end_m\", \"start_name\", \"end_name\", \"added_on\", \"chgd_on\"] " + 
           ", \"filters\": [[{\"columnName\": \"added_on\", \"operator\": \"GreaterThan\", \"value\": \"2015-01-01\"}] " + 
           ", [{\"columnName\": \"chgd_on\", \"operator\": \"GreaterThan\", \"value\": \"2015-01-01\"}]]}"; 

       streamWriter.Write(json); 
       streamWriter.Flush(); 
       streamWriter.Close(); 
     } 

     var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
     using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
     { 
     var result = streamReader.ReadToEnd(); 
     } 

    } 
+0

Sie scheinen nicht Ihre Authentifizierungs-Token zu speichern, wenn die Taste 1 zu klicken und damit nie Sie Ihre Authentifizierungs-Token senden, wenn Button 2 ... –

+0

@SaniSinghHuttunen Wie benutze es? – asmgx

+0

Zu breit und zu unspezifiziert ... –

Antwort

1

Sie normalerweise die Genehmigung in der Autorisierungsheader setzen würde, aber je nachdem, welche Art der Zulassung Sie verwenden, dass kann abhängen. Dies kann Ihnen behilflich sein:

Setting Authorization Header of HttpClient

+0

danke, ich werde versuchen, dass – asmgx

+0

Das ist nur ein Teil der OPs Probleme ... Da das Backend ist Ramm API der Autorisierung Teil wäre eine Autorisierung Header wie Sie angegeben. (Autorisierung: Träger [Token]). Jedoch. Da OP die Berechtigung toke nicht speichert, kann sie in der nächsten Anfrage nicht gesetzt werden. Und auch die URL ist in der zweiten Anfrage falsch. All dies, weil OP die Dokumentation für die API nicht lesen wollte. –

+0

Es funktioniert, danke. – asmgx

Verwandte Themen