void Application.toAdmin(QuickFix.Message message, SessionID sessionID)
        {
            if (message is QuickFix42.Logon)
            {
                StringBuilder encryptPwd = new StringBuilder(128);
                switch (this.encryptType)
                {
                case 0:
                    encryptPwd.Insert(0, this.passwrod);
                    break;

                case 2:
                case 101:
                    gsEncrypt(this.encryptType, this.passwrod, "GSFIXGW", encryptPwd, 128);
                    break;
                }
                // 调用加密函数
                message.setString(96, "Z:" + this.fundID + ":" + encryptPwd.ToString() + ":");
                message.setInt(98, this.encryptType);
            }
            //Console.WriteLine("to admin:"+message.ToString());
        }
Exemple #2
0
        /**
         * Callback chamado logo antes do envio da mensagem FIX de controle de sessão.
         *
         */
        public void toAdmin(QuickFix.Message message, SessionID sessionId)
        {
            try
            {
                // Se for mensagem de Logon, inclui o RawData e RawDataLength na mensagem
                if (message.getHeader().getString(MsgType.FIELD).Equals("A"))
                {
                    message.setBoolean(ResetSeqNumFlag.FIELD, true);
                    message.setInt(NextExpectedMsgSeqNum.FIELD,
                                   (new NextExpectedMsgSeqNum(ConstantesMDS.BMF_SEQNUM_INICIAL)).getValue());

                    message.setField(RawData.FIELD, new RawData(senha).ToString());
                    message.setField(RawDataLength.FIELD, new RawDataLength(senha.Length).ToString());

                    if (novaSenha != null && novaSenha.Length > 0)
                    {
                        message.setField(NewPassword.FIELD, new NewPassword(novaSenha).ToString());
                        logger.Info("Enviada nova senha para alteracao!");
                    }
                }
                else if (message.getHeader().getString(MsgType.FIELD).Equals("5"))
                {
                    if (assinados)
                    {
                        cancelaInstrumentos();
                    }
                }

                logger.Debug("SEND(SES) --> " + message.ToString());
            }

            catch (FieldNotFound e)
            {
                logger.Error("Campo nao encontrado: " + e.Message, e);
            }
        }