我有一个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