【问题标题】:To store session as public in C#在 C# 中将会话存储为公共
【发布时间】:2016-03-24 05:30:27
【问题描述】:

我正在使用windows.web.http 发出网络请求我正在拨打电话,如下所示

namespace service
{
 public class getserinfo
    {
        public async Task<bool> call()
        {
            var client = new HttpClient();
            var uri = new Uri(www.example.com / db / login);
            var response = await client.PostAsync(uri);
            var session = await response.Content.ReadAsStringAsync(); //here it returns session which I need in classes in another for accessing different paths
        }
    }
}

我如何将session ID 存储为可以在任何类中访问的public。

【问题讨论】:

  • 这可能对你有帮助。请参考session

标签: c# asp.net .net win-universal-app


【解决方案1】:

您在项目的根目录中创建一个静态类,该类可以存储此数据以便从任何地方访问。

【讨论】:

    【解决方案2】:

    会话主要存储在 cookie 中(并非总是如此)。您可以做的是创建一个全局 CookieContainer 变量。首次调用网站并将 cookie 存储在 CookieContainer 中,然后在每次请求时重新使用相同的 CookieContainer。下面的代码只是为了给你一个开端,它不是完整的代码,但希望你能明白。您将需要使用 HttpWebRequest。别担心 HttpWebResponse 也有异步的方法。

        public void WebsiteCall(string url)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.CookieContainer = container;
    
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            container = request.CookieContainer;
        }
    

    现在,每次您调用您的网站时,CookieContainer 都会被重新使用,如果网站将会话存储在 cookie 中,那么您将能够在每次调用期间成功地保持相同的会话。

    【讨论】:

      猜你喜欢
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 2014-05-20
      • 2011-08-20
      • 2011-08-11
      • 2016-10-18
      • 2017-12-02
      • 2021-10-23
      相关资源
      最近更新 更多