示例#1
0
        public RetornoWS UpdateData(string user, HttpRequestMessage request)
        {
            var json = request.Content.ReadAsStringAsync().Result;
            JavaScriptSerializer js = new JavaScriptSerializer();

            if (json == null)
            {
                return(new RetornoWS {
                    Erro = true, Message = "Erro"
                });
            }
            else
            {
                List <Obra> ListaObras = new List <Obra>();
                JObject     jo         = JObject.Parse(json);
                var         Obras      = jo.SelectToken("Obras");
                foreach (var i in Obras)
                {
                    string obra = i.ToString();
                    obra = obra.Replace("\"" + "HorasTotaisApropriacao" + "\"" + ": null", "\"" + "HorasTotaisApropriacao" + "\"" + ": 0");
                    var ObraJson = JsonConvert.DeserializeObject <Obra>(obra);
                    ListaObras.Add(ObraJson);
                }
                UpdateData(ListaObras, user);
                mb = new Banco.crud.manipulabanco();
                var model = new SEO.Models.LoginModel();
                model.UserName = mb.pesquisar("select U_UserName from SEO_Usuario where U_Id = " + "'" + user + "'");
                model.Password = mb.pesquisar("select U_Password from SEO_Usuario where U_Id = " + "'" + user + "'");
                var           login         = Login(model);
                UsuarioLogado UsuarioLogado = new UsuarioLogado();
                var           Usuario       = new UsuarioService().Login(model.UserName, model.Password);
                UsuarioLogado.Id    = Usuario.U_Id;
                UsuarioLogado.Nome  = Usuario.U_Nome;
                UsuarioLogado.Hash  = Usuario.U_Hash;
                UsuarioLogado.CPF   = Usuario.U_CPF;
                UsuarioLogado.Chapa = Usuario.U_Chapa;

                List <Colaborador> ListColaboradores = new UsuarioService().GetColaboradores();
                List <Obra>        ListObra          = new ObraService().GetObras(Usuario.U_Id);
                return(new RetornoWS {
                    Erro = false, UsuarioLogado = UsuarioLogado, Colaboradores = ListColaboradores, Obras = ListObra
                });
            }
        }
示例#2
0
 public string UsuarioAutenticado(string usuario, string senha)
 {
     mb = new Banco.crud.manipulabanco();
     if (mb.pesquisar("select count(*) from Usuario where login = "******"'" + usuario + "'") == "0")
     {
         resposta = "Usuário inválido";
     }
     else
     {
         Util.sql = "select cast(codigo as varchar(10)) + ';' + cast(tipoautenticacao as varchar(10)) from Usuario where login = "******"'" + usuario + "'";
         string[] VetorUsuario = mb.pesquisar(Util.sql, 1, ";").Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
         bool     achou        = false;
         if (VetorUsuario[1] == "1") // AD
         {
             string            ldap          = "LDAP://DC=DMIP,DC=local";
             DirectoryEntry    directoryRoot = new DirectoryEntry(ldap);
             DirectorySearcher buscador      = new DirectorySearcher(directoryRoot, "(&(objectClass=User)(objectCategory=Person))");
             buscador.Filter = string.Format("(&(objectCategory=person)(anr={0}))", usuario);
             SearchResultCollection resultados = buscador.FindAll();
             foreach (SearchResult resultado in resultados)
             {
                 DirectoryEntry de = resultado.GetDirectoryEntry();
                 if ((string)de.Properties["SAMAccountName"][0] == usuario)
                 {
                     int flags = (int)de.Properties["userAccountControl"].Value;
                     if ((flags == 512) || (flags == 66048)) // usuário ativo no AD
                     {
                         PrincipalContext contexto = new PrincipalContext(ContextType.Domain);
                         GroupPrincipal   grupoSEO = GroupPrincipal.FindByIdentity(contexto, "SEO_Grupo");
                         if (grupoSEO != null)
                         {
                             foreach (Principal p in grupoSEO.GetMembers())
                             {
                                 UserPrincipal usuarioSEO = p as UserPrincipal;
                                 if (usuarioSEO.SamAccountName == usuario)                    // encontrou o usuário
                                 {
                                     achou    = contexto.ValidateCredentials(usuario, senha); // validar a senha
                                     resposta = achou ? VetorUsuario[0] : "Usuário não encontrado no activity directory";
                                     break;
                                 }
                             }
                         }
                     }
                     break;
                 }
             }
         }
         else
         {
             if (VetorUsuario[1] == "2") // Usuário do Sistema
             {
                 if (mb.pesquisar("select count(*) from Usuario where login = "******"'" + usuario + "'" + " and senha = " + "'" + senha + "'") == "0")
                 {
                     resposta = "Usuário inválido";
                 }
                 else
                 {
                     resposta = VetorUsuario[0];
                 }
             }
             else // toten
             {
                 if (mb.pesquisar("select count(*) from Usuario where IPToten = " + "'" + usuario + "'" + " and senha = " + "'" + senha + "'") == "0")
                 {
                     resposta = "Usuário inválido";
                 }
                 else
                 {
                     resposta = VetorUsuario[0];
                 }
             }
         }
     }
     return(resposta);
 }