コード例 #1
0
        protected List <SegPaginas> GetPages()
        {
            var objRol = GetUserRole();

            return(objRol == null?CMenus.GetPages(this.HttpContext, _context, -1) : CMenus.GetPages(this.HttpContext, _context, objRol.Idsro));
        }
コード例 #2
0
        public void Test1(int value)
        {
            bool res = CMenus.EsPar(value);

            Assert.Equal(true, res);
        }
コード例 #3
0
        protected List <SegAplicaciones> GetAplicaciones()
        {
            var objRol = GetUserRole();

            return(objRol == null?CMenus.GetAplicaciones(_context, -1) : CMenus.GetAplicaciones(_context, objRol.Idsro));
        }
コード例 #4
0
        public async Task <IActionResult> Login(SegUsuarios user, string strReturnUrl)
        {
            ViewData["ReturnUrl"] = strReturnUrl;
            if (ModelState.IsValid)
            {
                const string badUserNameOrPasswordMessage = "Usuario o contraseña incorrectos.";
                const string badUserCreation = "El Usuario no tiene un Rol activo";
                if (user == null)
                {
                    ModelState.AddModelError("", badUserNameOrPasswordMessage);
                    return(View());
                }

                const string incompleteInformation = "Debe especificar un usuario y contraseña para continuar.";
                if (user.Login == "" || user.Password == "")
                {
                    ModelState.AddModelError("", incompleteInformation);
                    return(View());
                }

                var obj = _context.SegUsuarios.SingleOrDefault(m => m.Login == user.Login);
                if (obj == null)
                {
                    ModelState.AddModelError("", badUserNameOrPasswordMessage);
                    return(View());
                }

                if (!CFunciones.GenerarMd5(user.Password).ToUpper().Equals(obj.Password.ToUpper()))
                {
                    ModelState.AddModelError("", badUserNameOrPasswordMessage);
                    return(View());
                }

                var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);
                identity.AddClaim(new Claim(ClaimTypes.Name, obj.Login));
                identity.AddClaim(new Claim(ClaimTypes.GivenName, obj.Nombres + " " + obj.Apellidos));

                //Para el Rol
                var objRol = _context.SegUsuarios
                             .Join(_context.SegUsuariosRestriccion, sus => sus.Idsus, sur => sur.Idsus, (sus, sur) => new { sus, sur })
                             .Join(_context.SegRoles, sussur => sussur.sur.Idsro, sro => sro.Idsro, (sussur, sro) => new { sussur, sro })
                             .Where(t => t.sussur.sur.Rolactivo == 1)
                             .Where(t => string.Equals(t.sussur.sus.Login, obj.Login, StringComparison.CurrentCultureIgnoreCase))
                             .Select(arg => arg).SingleOrDefault();
                if (objRol == null)
                {
                    identity.AddClaim(new Claim(ClaimTypes.Role, string.Empty));
                    identity.AddClaim(new Claim(ClaimTypes.GroupSid, string.Empty));
                    HttpContext.Session.SetString("currentApp", string.Empty);
                    ModelState.AddModelError("", badUserCreation);
                    return(View());
                }
                identity.AddClaim(new Claim(ClaimTypes.Role, objRol.sro.Idsro.ToString()));
                identity.AddClaim(new Claim(ClaimTypes.GroupSid, objRol.sussur.sur.Idopy.ToString()));
                identity.AddClaim(new Claim(ClaimTypes.PrimarySid, objRol.sussur.sur.Idcde.ToString()));
                var objApp = CMenus.GetAplicaciones(_context, objRol.sro.Idsro).OrderBy(x => x.Nombre).First();

                HttpContext.Session.SetString("currentApp", objApp == null? string.Empty : objApp.Sigla);

                await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity));

                if (strReturnUrl == null)
                {
                    if (TempData["returnUrl"] != null)
                    {
                        return(Redirect(TempData["returnUrl"].ToString()));
                    }
                }

                return(RedirectToAction(nameof(DashboardController.Index), "Dashboard"));
            }

            // If we got this far, something failed, redisplay form
            return(View());
        }