簡體   English   中英

如何在REST服務的請求標頭中設置cookie

[英]How to set cookie in request header for REST service

我正在開發調用REST服務的Web服務,並且根據要求,我需要在請求標頭中設置cookie。 如果我設置了所有內容,它會給我“ 401未經授權的消息”作為響應。

 var request = (HttpWebRequest)HttpWebRequest.Create("https://TESTRestAPI/service/1/sub");
 request.Headers.Add("Authorization", "Basic" + Encoded);
 request.Method = "GET";
 request.ContentType = "application/json";
 var response = (WebResponse)request.GetResponse();

So far I tried this :-
1. request.Headers["Cookie"] = "BasicAuth=fromTest";
2. request.CookieContainer = new CookieContainer();
   Uri target = new Uri("https://TESTRestAPI/service/1/sub"););
   Cookie ck = new Cookie("BasicAuth","fromTest") { Domain = target.Host };

這是我第一次致電REST服務,感謝您的幫助。

此代碼用於通過使用一些用戶名和密碼的基本身份驗證來驗證http請求

 byte[] credentialBuffer = new UTF8Encoding().GetBytes(username + ":" + password);
 string authToken = Convert.ToBase64String(credentialBuffer);
 string authHeaderValue = string.Format(System.Globalization.CultureInfo.InvariantCulture, "Basic {0}", authToken);
 HttpWebRequest request = (HttpWebRequest)System.Net.WebRequest.Create("https://TESTRestAPI/service/1/sub");
 request.Headers.Add(HttpRequestHeader.Authorization, authHeaderValue);

另外,如果要求該請求包含一些具有某些名稱和值的cookie,則請使用您的代碼2。

 CookieContainer requestCookieContainer = new CookieContainer();
 Cookie requiredCookie = new Cookie("BasicAuth", "fromTest");
 requiredCookie.Domain = "https://TESTRestAPI/service/1/sub";
 requiredCookieContainer.Add(requiredCookie);
 request.CookieContainer = requestCookieContainer;

如果您的應用程序在IIS上運行,則配置文件可能需要一些行。 我認為默認情況下禁用基本身份驗證,因為它不太安全。

 <system.webServer>
    <security>
       <authentication>
          <basicAuthentication enabled="true"/>
       </authentication>
    </security>
  </system.webServer> 

暫無
暫無

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

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