【问题标题】:How to set cookie in request header for REST service如何在 REST 服务的请求标头中设置 cookie
【发布时间】:2014-03-21 22:08:39
【问题描述】:

我正在开发调用 REST 服务的 web 服务,根据要求,我需要在请求标头中设置 cookie。即使我设置了所有内容,它也会给我“401 Unauthorized message”作为响应。

 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 服务,感谢任何帮助。

【问题讨论】:

    标签: c# asp.net web-services rest cookies


    【解决方案1】:

    此代码是通过使用基本身份验证,使用一些用户名和密码来验证 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,则 Id' 使用您的代码 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> 
    

    【讨论】:

      猜你喜欢
      • 2011-06-24
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      • 2018-12-21
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多