我用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();