将HttpResponseMessage中的set-cookie头传递给当前的HTTP响应

时间:2019-07-01 02:11:18

标签: c# http-headers httpclient session-cookies setcookie

我具有身份验证端点(我的控制权受到限制),一旦通过身份验证,它将返回set-cookie标头 现在从前端(jQuery)调用它,我不必担心这些标头

但是,出于多种原因,我想从后端进行身份验证。我正在使用HttpClientPostAsync(),并且正在获取Cookie,它们显然属于该端点,而该端点位于另一个URL

我尝试从HttpResponseMessage提取cookie,然后构造一个HttpCookie,但是该值不包含域,如果我自己添加它,则不起作用


System.Net.Http.HttpResponseMessage task = client.PostAsync(URL, content).Result;

if (task.StatusCode == System.Net.HttpStatusCode.Created)
{
    string ssCookie = "";

    IEnumerable<string> headerValues;
    bool success = task.Headers.TryGetValues("Set-Cookie", out headerValues);
    if (success)
    {
        ssCookie = headerValues.FirstOrDefault(header => header.StartsWith("authCookie"));
        ssCookie = ssrsCookie.Substring(7);
        //ssCookie = ssrsCookie.Split(new Char [] {';',})[0];
    }

    HttpCookie cookie = new HttpCookie("authCookie", ssCookie);
    //cookie.Domain = "localhost";
    Response.Cookies.Add(cookie);

}

有没有办法做到这一点,或者我必须使用正面!?

0 个答案:

没有答案