サーバーとして php を使用し、クライアントとして C# winform を使用します。ユーザー A がログインに成功すると、インターフェース B が表示されます。ユーザー A がインターフェース B を操作するとき、サーバーはユーザー A がログインしていることをどのように判断するのでしょうか。そうでない場合、ユーザー A に権限がないことを示すメッセージが表示されます。
winform は理解できません。php のセッションを使用してください。
中間変数を使用します。変数の割り当ては空です。A がログインに成功すると、変数に値があるかどうかを判断するだけです。
phpでログイン後、セッションに入り、セッションを保存します
サーバーにmemcacheがインストールされている場合は、セッションを保存することもできます。 winform が PHP のセッション値を取得できない場合は、memcache で値を直接取得することもできます
複雑で簡単ではありません
CAS 統合認証を使用することもできます
セッションを使って解決できないでしょうか?
参考にさせてください。 http://blog.csdn.net/lcawen88/article/details/8534978
これは非常に簡単ですが、詳細は説明しません。
まず、ログを作成した後。ページがlogin.phpであると仮定すると、HttpWebRequestを使用してHTTPリクエストを送信し、投稿データをセッションに保存する必要があります($_SESSION["username"] = $_POSTと同様)。 ["..."])、C# はこのページを呼び出す HTTP リクエストを送信して、ユーザーのログイン情報を SESSION に書き込みます。このページには、$ を判断するためのセクションが必要です。 _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();