miXer Skrevet 30. januar 2010 Del Skrevet 30. januar 2010 Heisann Jeg har en TcpListener som står i en loop og venter på innkommende TcpClienter, og dette fungerer utmerket. Men jeg vil gjerne at hver TcpClient skal gi med brukernavn og passord for å connecte. Noen som vet hvordan jeg kan gjøre dette? Her er koden jeg bruker for å godkjenne connections: while (true) { //blocks until a client has connected to the server TcpClient client = tcpListener.AcceptTcpClient(); //checks if the client is blacklisted if (FindBlacklistClient(EndPointParser(EndPointParseType.IP, client.Client.RemoteEndPoint))) { //client is blacklisted. Disconnect client SendMessage(client, FindBlacklistReason(EndPointParser(EndPointParseType.IP, client.Client.RemoteEndPoint))); client.Close(); continue; } connectedClients.Add(client); leaveReason.Add(client.Client.RemoteEndPoint.ToString() + ":dc"); Activity(ActivityType.Connected, EndPointParser(EndPointParseType.IP, client.Client.RemoteEndPoint), Convert.ToInt32(EndPointParser(EndPointParseType.Port, client.Client.RemoteEndPoint)), ""); //create a thread to handle communication with client Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientComm)); clientThread.Start(client); } Lenke til kommentar
GeirGrusom Skrevet 31. januar 2010 Del Skrevet 31. januar 2010 Så lenge du bruker TcpListener er det opp til deg å legge inn støtte for brukernavn og passord. Lenke til kommentar
miXer Skrevet 31. januar 2010 Forfatter Del Skrevet 31. januar 2010 (endret) Ja, regna jo med det, men bare lurer på hvordan jeg skal gjøre det. Er det mulig å kjøre no kode før en client blir accepted? Har du noen eksempler/ideer på hvordan jeg kan få det til? Finnes det annen metode å godkjenne connections på med brukernavn og passord utenom TcpListener? Endret 31. januar 2010 av miXer Lenke til kommentar
Gjest Slettet-aNZFa3 Skrevet 31. januar 2010 Del Skrevet 31. januar 2010 Klienten sender brukernavnet og passordet, tcplistener tar imot tilkoblingen, sjekker om brukenavn og passord er riktig, hvis ikke, så bare stenger den tilkoblingen til klienten. Lenke til kommentar
GeirGrusom Skrevet 1. februar 2010 Del Skrevet 1. februar 2010 (endret) [ISerializable()] public class ConnectionData { private string username; private long password; public string UserName { get { return username; } set { username = value; }} public long Password { get { return password; }set { password = value; }} public void SetPassword(string psw) { var md5 = System.Security.Cryptography.MD5.Create(); password = BitConverter.ToInt64(md5.CreateHash(Encoding.Unicode.GetBytes(psw))); } } Denne kan du skrive til streamen med BinaryFormatter. Endret 1. februar 2010 av GeirGrusom Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå