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 }); } }
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); }