private void OnClAuthRespond(ClAuthRespond msg, ClientId id) { var cl = clients[id]; var accessFlags = UserAccess.Default; var result = AuthenticateClient(msg.Login, msg.Password, ref accessFlags); var respond = new SvAuthResult { Result = result }; if (result == AuthResult.Accepted) { cl.Login = msg.Login; cl.Password = msg.Password; cl.AccessFlags = accessFlags; cl.Authenticated = true; nameToClient.Add(cl.Login, cl); Root.Log(LogLevel.Info, "Client #{0} ({1}) : authentication succeeded", cl.Id, cl.Login); respond.Message = "All ok"; if (SendTo(id, respond)) { OnClientAuthSuccess(id); } } else { Root.Log(LogLevel.Info, "Client #{0} ({1}) : authentication failed <{2}>", cl.Id, msg.Login, result); // XXX: add extra details here respond.Message = ""; if (SendTo(id, respond)) { DisconnectClient(cl); } } }
public void SaveLoadMessageCryptoContainer() { // arrange const string refLogin = "******"; const string refPassword = "******"; var msg = new ClAuthRespond { Login = refLogin, Password = refPassword, }; using (var csp = CryptoProviderFactory.Instance.CreateSymmetric(SdmSymmetricAlgorithm.AES)) { using (var container = new MessageCryptoContainer()) { foreach (var p in protocols) { // act container.Store(msg, csp, p); MultiprotocolSaveLoad(container, () => { var emsg = (ClAuthRespond)container.Extract(msg.Id, csp, p); // assert Assert.AreEqual(emsg.Login, refLogin); Assert.AreEqual(emsg.Password, refPassword); }); } } } }
private void OnAuthChallenge(SvAuthChallenge msg) { sessionKey = asymCp.Decrypt(msg.SessionKey); var respond = new ClAuthRespond { Login = login, Password = password }; Send(respond); }
public void SaveLoadClAuthRespond() { // arrange const string refLogin = "******"; const string refPassword = "******"; var msg = new ClAuthRespond { Login = refLogin, Password = refPassword, }; // act MultiprotocolSaveLoad(msg, () => { // assert Assert.AreEqual(msg.Login, refLogin); Assert.AreEqual(msg.Password, refPassword); }); }