gpt4 book ai didi

c# - 在 HttpClient 调用中重用 session cookie

转载 作者:行者123 更新时间:2023-11-30 18:31:25 27 4
gpt4 key购买 nike

我有一个 Web API 2 项目,它使用基于 cookie 的 session 供我们内部使用。我创建了 /api/login/api/logout 操作,使用浏览器访问它可以正常工作。

我现在正在尝试创建一个 C# 客户端,以使用 HttpClient 与 API 进行通信。我可以使用以下方式正常登录:

Uri loginUri =  new Uri("http://localhost/api", "login");
HttpResponseMessage response = _http.PostAsJsonAsync(loginUri, loginModel).Result;

我可以通过以下方式从 cookie 中获取 session ID 字符串

var cookies = _httpHandler.CookieContainer.GetCookies(uri);
if (cookies["session_id"] != null)
sessionID = cookies["session_id"].Value;

我的问题是:对于包括注销请求在内的每个后续请求,我如何在请求 header 中包含 session_id cookie?如果可能,我想在 session 期间重用 HttpClient 对象。我看到了this question and answer , 但它是在同一个请求中调用登录、执行操作和注销。

谢谢!

最佳答案

我最终返回并使用了我在 MVC 项目中使用的相同 FormsAuthentication 方法。因此,在调用我的自定义 MembershipProvider 之后,我使用了 FormsAuthentication 方法来设置和跟踪我的 session cookie。我调用 FormsAuthentication.SetAuthCookie() 进行登录,调用 FormsAuthentication.SignOut() 进行注销。

关于c# - 在 HttpClient 调用中重用 session cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20204856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com