J'ai une application client/serveur TCP simple. Comment configurer les deux programmes donc du côté serveur, il faut un nom d'utilisateur et un mot de passe, et quand le client essaie de se connecter, ils doivent entrer le nom d'utilisateur et le mot de passe et l'envoyer au serveur, le serveur vérifiez si c'est le bon nom d'utilisateur et mot de passe, si c'est correct puis il permet la connexion, sinon il rejette la connctionServeur et client TCP/IP C#
Répondre
Cela ne peut pas être fait en utilisant simple TCP/IP. Vous devrez soit inventer une sorte de protocole ou utiliser WCF ou similaire. Comme la connexion se produit avant que tout puisse être envoyé, il n'y a aucun moyen d'envoyer des informations d'identification "avec la connexion". Il faut que le client se connecte, reçoive une commande pour "Login", vérifie les informations d'identification et renvoie un identifiant unique qui doit ensuite être envoyé avec chaque commande pour que le serveur puisse vérifier si le client a été authentifié. C'est comme ça que je ferais si la WCF n'était pas une option.
Blanc Thorsten est techniquement correct, je pense toujours qu'il ya une solution:
Que le serveur accepte toutes les connexions, mais attendez-vous alors que les premières données de la connexion le nom d'utilisateur et mot de passe. Si elles sont incorrectes, le serveur fermera alors la connexion et ne traitera aucune des demandes que le client a pu envoyer sur la connexion.
*** scratchhead *** N'est-ce pas l'équivalent de ce que j'ai dit, y compris mes commentaires ci-dessus? –
Pas exactement. Le PO est concerné par l'utilisation de connexions non autorisées. Donc, en soulignant que c'est en fait nom d'utilisateur et mot de passe (plutôt que "credentials"), et en soulignant que vous fermez la connexion lorsque les informations d'identification sont incorrectes, peut être la clé de la compréhension. En outre, je ne vois pas l'intérêt d'utiliser des cookies ici. –
Utilisez WCF car vous n'avez évidemment jamais utilisé de sockets pures auparavant. Ce sera probablement une solution plus stable que si vous essayez d'apprendre les sockets et d'inventer votre propre protocole.
Vous pouvez utiliser WCF avec netTcpBinding pour obtenir ce que vous voulez. Vous avez un exemple ici: http://www.dotnetspider.com/resources/19314-Client-server-sample-using-WCF-net-tcp-binding.aspx
Je suis désolé si ce n'était pas la réponse que vous recherchez, mais il y a beaucoup à mettre en œuvre correctement pour obtenir une solution client/serveur tcp/ip sans tracas .
- 1. Connexion unique du serveur TCPIP
- 2. Mise en réseau TCPIP avec C#
- 3. C# serveur de socket et client
- 4. C# serveur UdpClient et numéro client
- 5. C# Serveur et client TCP/IP
- 6. simple client et le serveur
- 7. Validation client et serveur
- 8. Côté client et serveur
- 9. Apprentissage du serveur client C#
- 10. Écrire un C# client/serveur
- 11. serveur xampp et client java/application serveur
- 12. iPhone/iPod recevoir des messages du serveur C# tcpip utilisant CocoaAsyncSocket
- 13. Serveur Ruby et client Flash
- 14. Serveur socket asynchrone et client travaillant (écrit en C)
- 15. Communication sécurisée entre un client C# et un serveur PHP
- 16. Code de serveur et de client Telnet dans c
- 17. Requête/réponse simple du serveur et du client en C#
- 18. C# client-serveur protocole/question de modèle
- 19. C# AS3 MMO Serveur Socket/Client
- 20. (C++) Serveur de jeu, (Flash) Client
- 21. C# tcp problème de client serveur
- 22. programme client/serveur en C++ problème
- 23. connexion serveur/serveur client
- 24. Clé d'écriture du client d'accès client et clé d'écriture du serveur d'API OpenSSL C
- 25. serveur à pousser client?
- 26. Serveur et client utilisant des sockets
- 27. AJAX et architecture client-serveur avec JavaScript
- 28. java client tcp et le serveur
- 29. Date du client et confusion du serveur
- 30. Client UDP et serveur avec Twisted Python
J'ai un contrôle de connexion où l'utilisateur doit taper son nom d'utilisateur et mot de passe, mais le problème est que n'importe qui peut créer un programme pour se connecter à l'adresse IP spécifique avec le port correct. C'est pourquoi je voulais que le côté serveur caille à la place avant d'autoriser la connexion. – user464111
Je sais ce que vous essayez d'obtenir, mais cela ne peut simplement pas être fait en utilisant TCP/IP sans définir un type de protocole sur TCP/IP. Comme je l'ai dit, vous pouvez démarrer une "session" sur le serveur pour chaque client (ce que vous feriez de toute façon pour que le serveur reste réactif). Si le client est authentifié correctement, acceptez et exécutez d'autres commandes mais "Login", sinon, ne le faites pas. Vous pouvez demander au client d'envoyer un jeton que vous fournissez après une connexion réussie, ou demander au serveur de se souvenir des clients authentifiés. –