예제 #1
0
        /// <summary>
        /// verificará que el usuario esté habilitado para resetear o desbloquear un UW y que no registre un ausentismo para ese día.
        /// </summary>
        /// <param name="userName"></param>
        public static UserAPiBE VirifyUser(string userName)
        {
            UserAPiBE item             = null;
            var       connectionString = Common.GetCnn(Common.CnnStringNameepiron).ConnectionString;

            using (SqlConnection cnn = new SqlConnection(connectionString))
                using (SqlCommand cmd = new SqlCommand("dbo.usp_ReseteoWebVerificarUsuario", cnn)
                {
                    CommandType = System.Data.CommandType.StoredProcedure
                })
                {
                    cnn.Open();
                    /// FACTURA_NRO
                    cmd.Parameters.AddWithValue("@UW", userName);
                    //cmd.Parameters.AddWithValue("@dom_id", domainId);

                    using (IDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            item = new UserAPiBE();

                            item.Legajo = Convert.ToInt32(reader["Legajo"]);
                            item.CAIS   = Convert.ToBoolean(reader["CAIS"]);
                            item.Cuenta = reader["Cuenta"].ToString();
                            item.Cargo  = reader["Cargo"].ToString();
                            item.Emp_id = Convert.ToInt32(reader["Legajo"]);
                            //item.DomainId = domainId;
                            item.WindowsUser = userName;
                        }
                    }

                    return(item);
                }
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="req"></param>
        //public static void Bot_insert_sendStatus(EnqueueCommentBotReq req)
        //{
        //    var connectionString = Common.GetCnn(Common.CnnStringNameepiron).ConnectionString;
        //    using (SqlConnection cnn = new SqlConnection(connectionString))
        //    using (SqlCommand cmd = new SqlCommand("dbo.MessageBot_i", cnn) { CommandType = System.Data.CommandType.StoredProcedure })
        //    {
        //        cnn.Open();

        //        cmd.Parameters.AddWithValue("@CaseCommentTextSent", req.CaseCommentTextSent);
        //        cmd.Parameters.AddWithValue("@AccountUnique ", req.AccountUnique);
        //        cmd.Parameters.AddWithValue("@CaseId", req.CaseId);
        //        cmd.Parameters.AddWithValue("@CaseCommentGUID", req.CaseCommentGUID);
        //        cmd.Parameters.AddWithValue("@CreationDateLog", DateTime.Now);
        //        cmd.Parameters.AddWithValue("@SCInternalCode", req.SCInternalCode);
        //        cmd.Parameters.AddWithValue("@ElementTypePublic", req.ElementTypePublic);



        //        cmd.ExecuteNonQuery();
        //    }
        //}

        /// <summary>
        ///
        /// </summary>
        /// <param name="domainName">Proviene de la tabla Domains URL y es el SiteDoamin</param>
        /// <returns></returns>
        //internal static int GetDimainId(string domainName)
        //{
        //    domainName = domainName.Replace("-", ".");
        //    var epironDomains = RetriveDommains();
        //    var d = epironDomains.Where(p => p.Domain.ToLower().Equals(domainName.ToLower())).FirstOrDefault();
        //    if (d == null)
        //        throw new Fwk.Exceptions.FunctionalException("No es posible encontrar informacion configurada sobre el dominio " + domainName.ToLower());
        //    return d.DomainId;

        //    //antes sacabamos del domain.json
        //    //var d = Common.Domains.Where(p => p.Domain.ToLower().Equals(domainName.ToLower())).FirstOrDefault();
        //    //if(d==null)
        //    //    throw new Fwk.Exceptions.FunctionalException("No es posible encontrar informacion configurada sobre el dominio " + domainName.ToLower());
        //    //return d.DomainId;
        //}

        //private static object RetriveDommains()
        //{
        //    throw new NotImplementedException();
        //}


        /// <summary>
        /// Buscar
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="domainId"></param>
        /// <param name="DNI"></param>
        public static UserAPiBE RetriveDatosUserAPi(string userName, int domainId, string DNI)
        {
            //return RetriveDatosReseteoEmpleados_mok();

            UserAPiBE item = null;


            var connectionString = Common.GetCnn(Common.CnnStringNameepiron).ConnectionString;

            using (SqlConnection cnn = new SqlConnection(connectionString))
                using (SqlCommand cmd = new SqlCommand("dbo.UserAPi", cnn)
                {
                    CommandType = System.Data.CommandType.StoredProcedure
                })
                {
                    cnn.Open();

                    cmd.Parameters.AddWithValue("@UW", userName);
                    cmd.Parameters.AddWithValue("@dom_id", domainId);
                    cmd.Parameters.AddWithValue("@DNI", DNI);

                    using (IDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            item = new UserAPiBE();

                            //cue_nombre sar_nombre car_nombre usuariowindows dominio
                            item.Emp_id  = Convert.ToInt32(reader["Emp_id"]);
                            item.Cargo   = reader["car_nombre"].ToString();
                            item.Cuenta  = reader["cue_nombre"].ToString();
                            item.Subarea = reader["sar_nombre"].ToString();
                            item.ApeNom  = reader["emp_apenom"].ToString();
                            if (reader["aus_id"] != DBNull.Value)
                            {
                                item.Aus_Id = Convert.ToInt32(reader["aus_id"]);
                            }
                        }
                    }

                    return(item);
                }
        }
예제 #3
0
        public static string GenerateTokenEpiron(UserAPiBE emmpleadoBE)
        {
            var tokenHandler       = new JwtSecurityTokenHandler();
            var secretKey          = Encoding.ASCII.GetBytes(apiAppSettings.serverSettings.apiConfig.api_secretKey);
            var securityKey        = new SymmetricSecurityKey(secretKey);
            var signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature);

            ClaimsIdentity claimsIdentity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, emmpleadoBE.WindowsUser) });

            if (emmpleadoBE != null)
            {
                claimsIdentity.AddClaim(new Claim(ClaimTypes.WindowsAccountName, emmpleadoBE.WindowsUser));
                claimsIdentity.AddClaim(new Claim("Emp_id", emmpleadoBE.Emp_id.ToString()));
                claimsIdentity.AddClaim(new Claim("Legajo", emmpleadoBE.Legajo.ToString()));
                claimsIdentity.AddClaim(new Claim("dom_id", emmpleadoBE.DomainId.ToString()));
                claimsIdentity.AddClaim(new Claim("cuenta", emmpleadoBE.Cuenta));
                claimsIdentity.AddClaim(new Claim("cargo", emmpleadoBE.Cargo));
                claimsIdentity.AddClaim(new Claim("CAIS", emmpleadoBE.CAIS.ToString()));
            }


            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Audience = apiAppSettings.serverSettings.apiConfig.api_audienceToken,
                Subject  = claimsIdentity,
                Expires  = DateTime.UtcNow.AddMinutes(Convert.ToInt32(apiAppSettings.serverSettings.apiConfig.api_expireTime)),

                Issuer             = apiAppSettings.serverSettings.apiConfig.api_issuerToken,
                NotBefore          = DateTime.UtcNow,
                SigningCredentials = signingCredentials
            };


            var secToken       = tokenHandler.CreateToken(tokenDescriptor);
            var jwtTokenString = tokenHandler.WriteToken(secToken);

            return(jwtTokenString);
        }