我用php做服务器端,c#的winform做客户端。当A用户登录成功之后,会显示B界面.当A用户在B界面进行操作时,服务器怎么判断这个A用户已经登录过,如果没登陆的话会提示他没有权限。
winform不懂, php用session就可以了。
用一个中间变量就可以,变量赋值为空,当A登录成功变量就赋个值,操作时判断变量有没有值就可以了!
php登?之後?入session,?session存入???
不管是winform?是php都能??控制了.
如果服?器安?了memcache,那?也可以把session存入memcache.??就算winform?法取得php的session值,也可以直接?memcache里取值.
繁?很不??捏
可以使用CAS统一认证
http://www.ibm.com/developerworks/cn/webservices/ws-casestudy/part4/
使用session不能解决吗?
给个参考哈。 http://blog.csdn.net/lcawen88/article/details/8534978
我也是用c#做客户端的,这个很简单哦,细节我不说了,大体方法:
首先,客户端登录后,使用HttpWebRequest发送HTTP请求,假设那个页面是login.php,你要在里面写一段
将post数据存入session的代码(类似 $_SESSION["username"] = $_POST["..."]),然后C#发送HTTP请求调用这个页面可以将用户登录信息写入SESSION,之后又另一个管理页面是manager.php,这个页面里要有一段
判断 $_SESSION["username"]的代码,并且用 echo $_SESSION["username"] 的方法将其输出,这样C#登录manager.php时候就可以获取$_SESSION["username"],将它和用户名匹配,存在并且正确就进入管理界面,否则在客户端弹出警告
C#用HttpWebRequest,下面这段代码可以在客户端获取服务端PHP页面的值
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://localhost:81/console_revised/" + page); data = encoding.GetBytes(postData); myRequest.Method = "POST"; myRequest.ContentType = "application/x-www-form-urlencoded"; myRequest.ContentLength = data.Length; Stream newStream = myRequest.GetRequestStream(); newStream.Write(data, 0, data.Length); newStream.Close(); HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); StreamReader reader = new StreamReader(myResponse.GetResponseStream(), encoding); string content = reader.ReadToEnd(); reader.Close(); myResponse.Close();