public ActionResult Login(UtilizadorLogIn objetoM) { //SetUp _Layout e check permições do urilizador setNavbar(); setUserContext(); if ((int)utilizadorATrabalhar._prefil != 0) { return(RedirectToAction("Index", "Home")); } string resultado = ""; if (ModelState.IsValid) // Validar caso JS for deslicado do lado do cliente { try { Utilizador_Helper objetoHelper = new Utilizador_Helper(Program._conect); utilizadorATrabalhar = objetoHelper.autentificar(objetoM._login, objetoM._pass); HttpContext.Session.SetString("id", utilizadorATrabalhar._uidUtilizador); return(RedirectToAction("Index", "Home")); } catch (Exception e) { resultado = e.Message; } } // Devolver página de erro if (resultado != "") { return(RedirectToAction(nameof(Error), new { menssagem = resultado })); } return(RedirectToAction("Index", "Home")); }
public ActionResult Logout() { //SetUp _Layout e check permições do urilizador setNavbar(); setUserContext(); Utilizador_Helper objetoHelper = new Utilizador_Helper(Program._conect); utilizadorATrabalhar = objetoHelper.logout(); HttpContext.Session.SetString("id", utilizadorATrabalhar._uidUtilizador); // Passar para Convidado // Gravar logo de saida return(RedirectToAction("Index", "Home")); }
//--- Transformar id utilizador da sessão para objeto UtilizadorAtivo private void setUserContext() { string uid = ""; try { //Existe já uid definido (mesmo que = "") ? uid = HttpContext.Session.GetString("id"); //Sim } catch { //Não... portanto, predefinir conta Guest quando entra pela primeira vez HttpContext.Session.SetString("id", ""); //é um convidado uid = ""; } //No conta, passo a ter um convidado (se uid="") ou um perfil válido sempre que uid é um uniqueidentifier válido e exista na BD e ativo utilizadorATrabalhar = Program.getUtilizador(uid); HttpContext.Session.SetString("id", utilizadorATrabalhar._uidUtilizador); //Importantissimo para enviar o perfil para a View para gerir permissões ViewBag.utilizador = (UtilizadorAtivo)utilizadorATrabalhar; }