簡體   English   中英

在寧靜的C#中使用身份驗證令牌

[英]use authentication token in restful C#

我厭倦了其他資源,但找不到我的問題的答案,如果這個問題在其他地方得到了回答,請給我發送答案的鏈接。

我需要使用寧靜的服務,為此必須首先使用身份驗證。 很好,那很好,我管理了身份驗證並獲得了身份驗證令牌。

現在,當我想使用我想要的服務時,遠程服務器返回錯誤:(401)未經授權。

服務中沒有使用令牌的地方。

我創建了一個簡單的C#程序,它包含2個按鈕按鈕1:將對用戶進行身份驗證(工作正常,我將獲得令牌)按鈕2:將使用主服務(不起作用並獲得未授權)

這是我的代碼,請告知我如何使用身份驗證令牌。

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();
      }

   }

您通常會將授權放在授權標頭中,但是取決於您使用的授權類型,這可能會有所不同。 這可能對您有幫助:

設置HttpClient的授權標頭

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM