예제 #1
0
        public ActionResult WebLogin([Required(ErrorMessage = "Informe o Usuário")][StringLength(5)] string usuario, [Required(ErrorMessage = "Informe a senha")] string senha, string returnUrl = "/", string AppId = "", string appUrl = "", bool domain = true)
        {
            if (ModelState.IsValid)
            {
                string dominio = WebConfigurationManager.AppSettings["SAA-Domain"];

                if (IsAuthenticatedByFormsAuthentication())
                {
                    return(Redirect(GetAppUrlRedirect(AppId, appUrl, returnUrl, User.Identity.Name, Request.GetUserToken())));
                }

                if (domain) // 1. Autentica via domínio
                {
                    Status retorno = usuarioNegocio.AutenticaUsuario(usuario, senha, Request, dominio);
                    if (retorno.Succeeded)
                    {
                        string hash     = retorno.Token;
                        string userName = dominio + "\\" + usuario;
                        HttpContext.Response.SetAuthCookie(userName, true, hash);
                        LogOutUser(false, userName);
                        return(Redirect(GetAppUrlRedirect(AppId, appUrl, returnUrl, userName, hash)));
                    }
                }
                else // 2. Autenticação Local
                {
                    Status retorno = usuarioNegocio.AutenticaUsuario(usuario, senha, Request);
                    if (retorno.Succeeded)
                    {
                        string hash = retorno.Token;
                        HttpContext.Response.SetAuthCookie(usuario, true, hash);
                        LogOutUser(false, usuario);
                        return(Redirect(GetAppUrlRedirect(AppId, appUrl, returnUrl, usuario, hash)));
                    }
                }
            }

            ViewBag.Usuario = usuario;
            return(View());
        }
예제 #2
0
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            if (ContextoApp.InfoEmpresa.MsgSistema == "1")
            {
                UsuarioNegocio nUsuario = new UsuarioNegocio();
                E_USUARIO      vUsuario = nUsuario.AutenticaUsuario(txtUsuario.Value, txtPassword.Value);

                if (vUsuario.FG_ACTIVO)
                {
                    if (vUsuario.oFunciones != null)
                    {
                        //Se agrega la clave del usuario al FormsAuthenticationTicket como user data, este dato se usara en nómina en el global.asax
                        FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(TICKET_VERSION, FormsAuthentication.FormsCookieName, DateTime.Now, DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes), false, vUsuario.CL_USUARIO, FormsAuthentication.FormsCookiePath);//FormsAuthentication.Timeout.TotalMinutes
                        string cookie = FormsAuthentication.Encrypt(ticket);
                        Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, cookie));
                        Session["UniqueUserId"]  = Guid.NewGuid();
                        ContextoUsuario.oUsuario = vUsuario;
                        var rol = ContextoUsuario.oUsuario.oRol.NB_ROL;
                        //Determinar si solo tiene la funcion de PDE enviar a PDE
                        if (vUsuario.oFunciones.Where(x => x.CL_FUNCION.Substring(0, 1) != "P" && x.CL_FUNCION != "Q" && x.CL_FUNCION != "E").Count() == 0)
                        {
                            Response.Redirect("/PDE/VentanaInicioPDE.aspx");
                        }
                        else
                        {
                            Response.Redirect("Default.aspx");
                        }
                    }
                    else
                    {
                        UtilMensajes.MensajeResultadoDB(RadWindowManager1, "El rol del usuario no tiene permisos.", E_TIPO_RESPUESTA_DB.WARNING);
                    }
                }
                else
                {
                    UtilMensajes.MensajeResultadoDB(RadWindowManager1, "El usuario o la contraseña son incorrectos.", E_TIPO_RESPUESTA_DB.WARNING);
                }
            }
            else
            {
                btnLogin.Enabled             = false;
                btnRecuperarPassword.Enabled = false;
                UtilMensajes.MensajeResultadoDB(RadWindowManager1, ContextoApp.InfoEmpresa.MsgSistema, E_TIPO_RESPUESTA_DB.WARNING);
            }
        }