public AutenticarUsuarioResponse AutenticarUsuario(AutenticarUsuarioRequest pRequest) { IServicoSeguranca lServicoSeguranca; AutenticarUsuarioResponse lResposta = new AutenticarUsuarioResponse(); //ReceberSessaoRequest lRequestSessao; //ReceberSessaoResponse lResponseSessao; try { Gradual.OMS.Seguranca.Lib.AutenticarUsuarioRequest lRequest = new Gradual.OMS.Seguranca.Lib.AutenticarUsuarioRequest(); Gradual.OMS.Seguranca.Lib.AutenticarUsuarioResponse lResponse; ServicoHostColecao.Default.CarregarConfig("Desenvolvimento"); lServicoSeguranca = Ativador.Get <IServicoSeguranca>(); lRequest.Email = pRequest.CodigoOuEmailDoUsuario; lRequest.Senha = Gradual.OMS.Seguranca.Lib.Criptografia.CalculateMD5Hash(pRequest.Senha); lRequest.IP = HttpContext.Current.Request.UserHostAddress; lResponse = lServicoSeguranca.AutenticarUsuario(lRequest); if (lResponse.StatusResposta == Library.MensagemResponseStatusEnum.OK) { lResposta.StatusResposta = lResponse.StatusResposta.ToString(); lResposta.DescricaoResposta = lResponse.DescricaoResposta; lResposta.CodigoDaSessao = lResponse.Sessao.CodigoSessao; lResposta.CodigoDeAcessoDoUsuario = Convert.ToString(lResponse.CodigoAcessoSistema); lResposta.IdLogin = Convert.ToString(lResponse.Sessao.CodigoUsuario); this.CodigosDeSessao.Add(lResposta.CodigoDaSessao, DateTime.Now); if (!string.IsNullOrEmpty(pRequest.Token)) { // o token é o nome da máquina com três números randômicos no final; vamos guardar somente o nome da máquina, então: string lTokenDecript = Criptografia.Descriptografar(pRequest.Token, true); lTokenDecript = lTokenDecript.Substring(0, lTokenDecript.Length - 3); if (!this.TokensDeSessao.ContainsKey(lTokenDecript)) { this.TokensDeSessao.Add(lTokenDecript, DateTime.Now); } else { this.TokensDeSessao[lTokenDecript] = DateTime.Now; } } Logger.InfoFormat("Resposta OK para login de Código de Acesso [{0}] Sessão [{1}] ", lResposta.CodigoDeAcessoDoUsuario, lResposta.CodigoDaSessao); /* * lRequestSessao = new ReceberSessaoRequest(); * * lRequestSessao.CodigoSessao = lResponse.Sessao.CodigoSessao; * lRequestSessao.CodigoSessaoARetornar = lResponse.Sessao.CodigoSessao; * * lServicoSeguranca = Ativador.Get<IServicoSeguranca>(); * * lResponseSessao = lServicoSeguranca.ReceberSessao(lRequestSessao); * * if (lResponseSessao.StatusResposta == Library.MensagemResponseStatusEnum.OK) * { * lResposta.CodigoCblcDoUsuario = lResponseSessao.Usuario.Complementos.ReceberItem<ContextoOMSInfo>().CodigoCBLC; * lResposta.CodigoBmfDoUsuario = lResponseSessao.Usuario.Complementos.ReceberItem<ContextoOMSInfo>().CodigoBMF; * * Logger.InfoFormat("Resposta OK para login de CBLC [{0}] BMF [{1}] Sessão [{2}]", lResposta.CodigoCblcDoUsuario, lResposta.CodigoBmfDoUsuario, lResposta.CodigoDaSessao); * } * else * { * lResposta.StatusResposta = "Erro CBLC"; * lResposta.DescricaoResposta = "Erro ao receber código CBLC: " + lResponseSessao.DescricaoResposta; * * Logger.Error(lResposta.DescricaoResposta); * }*/ } else { lResposta.StatusResposta = "Erro Segurança"; lResposta.DescricaoResposta = "Erro ao autenticar usuário: " + lResponse.DescricaoResposta; Logger.Error(lResposta.DescricaoResposta); } } catch (Exception ex) { lResposta.DescricaoResposta = string.Format("{0}\r\n{1}", ex.Message, ex.StackTrace); lResposta.StatusResposta = "Erro"; Logger.Error(lResposta.DescricaoResposta); } return(lResposta); }