如何使用c#获取网页会话值


How to get webpage session value using C#

我有一个PHP网站,它在会话中存储值。

我可以从一个独立的c#程序(在相同的机器和时间)得到这些值吗?

另一个选项(如果上面不可能的话)是将当前文本框的值转换为c#变量(如果可能的话)

你可以构建一个API

session_start();
if(isset($_GET['action']) && $_GET['action'] == "getSession") {
   echo json_encode($_SESSION);
}

然后你可以通过c#程序调用api。

// Returns JSON string
string GET(string url) 
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    try {
        WebResponse response = request.GetResponse();
        using (Stream responseStream = response.GetResponseStream()) {
            StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
            return reader.ReadToEnd();
        }
    }
    catch (WebException ex) {
        WebResponse errorResponse = ex.Response;
        using (Stream responseStream = errorResponse.GetResponseStream())
        {
            StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
            String errorText = reader.ReadToEnd();
            // log errorText
        }
        throw;
    }
}

url的调用类似于:GET("http://localhost/api.php?action=getSession")

出于安全原因,我更愿意在api中添加安全代码。

有可能。当你运行你的web应用程序时,你必须在数据库中保存会话。会话具有多种状态和模式。在数据库中存储会话是其中一种模式。然后可以使用简单的c#程序访问数据。

请访问此链接。

https://msdn.microsoft.com/en-us/library/ms178581 (v = vs.140) . aspxhttp://www.codeproject.com/Articles/150689/Details-explanation-on-Compression-Enabled-Session