public ActionResult Login(LoginModel model) { // Busca Solicitação var osAvulsa = this.RetornaOSAvulsa(); long?cliente = null; if (ModelState.IsValid) { try { // Autentica Usuario var modelUsu = autorizacaoServico.Autenticar(new BHJet_Servico.Autorizacao.Filtro.AutenticacaoFiltro() { usuario = model.Login, senha = model.Senha, area = TipoAplicacao.Interna }); // Tickets var userData = JsonConvert.SerializeObject(model.Login); var ticket = new FormsAuthenticationTicket(1, model.Login, DateTime.Now, DateTime.Now.AddMinutes(120), false, userData, FormsAuthentication.FormsCookiePath); var encryptedCookie = FormsAuthentication.Encrypt(ticket); var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedCookie) { Expires = DateTime.Now.AddHours(2) }; // Cookies Response.Cookies.Add(cookie); // Buscar perfil var perfil = autorizacaoServico.BuscaPerfil(modelUsu.access_token.ToString()); cliente = perfil.ClienteSelecionado; // Verifica if (perfil.TipoUsuario == TipoUsuario.Profissional) { throw new Exception("Perfil não autorizado a acessar esta aplicação."); } // Session - Session["IDTKUsuarioJet"] = UsuarioLogado.Logar(perfil.ID.ToString(), perfil.ClienteSelecionado, modelUsu.access_token.ToString(), model.Login, perfil.TipoUsuario); } catch (Exception e) { ViewBag.ErroLogin = e.Message ?? Mensagem.Validacao.UsuarioNaoEncontrato; return(View(new LoginModel())); } // Verifica se foi simulado uma corrida sem usuario if (osAvulsa != null && osAvulsa.SimulandoCorridaSemUsuario && UsuarioLogado.Instance.BhjTpUsu == TipoUsuario.ClienteAvulsoSite) { // Seta Cliente osAvulsa.IDCliente = cliente; // Atualiza Corrida this.AtualizaOSAvulsa(osAvulsa); // Redirect return(RedirectToAction("Resumo", "Entregas")); } else if (UsuarioLogado.Instance.BhjTpUsu == TipoUsuario.Administrador) { return(RedirectToAction("Index", "Home")); } else { return(RedirectToAction("Index", "HomeExterno", new { idCliente = cliente })); } } else { return(View(model)); } }