【发布时间】:2019-10-03 23:35:29
【问题描述】:
我有这个代码:
var handler = new HttpClientHandler
{
AllowAutoRedirect = false,
CookieContainer = new CookieContainer(),
UseCookies = true
};
return new HttpClient(handler)
{
Timeout = Timeout.InfiniteTimeSpan
};
我将 OpenID Connect 与 ASP.Net Core 结合使用,它会返回一个相关 cookie,如下所示:
cookieHeader = "correlation=ABCDEFG; path=/signin; secure; HttpOnly";
我致电该网站:
using (HttpResponseMessage msg = client.SendAsync(request).Result)
并被重定向到 OpenID 服务器。但是,HttpClient 的 cookie 容器不包含任何 cookie。如果我手动将相同的 cookie 添加到响应中,仅将路径修改为等于 /,例如
cookieHeader = "correlation=ABCDEFG; path=/; secure; HttpOnly";
然后cookie出现在HttpClient的CookieContainer中。我不想修改 ASP.Net Core 基础 OpenID 功能来更改 cookie 路径,因此 HttpClient 将获取 cookie 并且我可以进行身份验证。有没有办法让HttpClient 保存指定路径的cookie?
【问题讨论】:
标签: c# cookies openid-connect dotnet-httpclient