Jump to content
gianp

[ZF3] Alteração de senha no Active Directory

Recommended Posts

Prezados, estou realizando um script para alteração de senha no AD, porém ao tentar atualizar aparece o seguinte erro:

0x35 (Server is unwilling to perform; 0000209A: SvcErr: DSID-031A107A, problem 5003 (WILL_NOT_PERFORM), data 0
): updating: CN=Users,DC=domain,DC=local

Tenho um certificado local e outro no servidor instalados, além de realizar conexão criptografada.

 

Abaixo segue o trecho do meu código:

public function resetAction()
{
      $ldap_connect = $this->getLdap();
      $ldap = new Ldap($ldap_connect);

      $user = $this->getRequest()->getPost('user');
      $sen = $this->getRequest()->getPost('sen');

      $bind = $ldap->bind($user, $sen);

      if($bind) :

        $getName = $ldap->getCanonicalAccountName($user, Ldap::ACCTNAME_FORM_DN);
        $getEntry = $ldap->getEntry($getName);
        Attribute::setPassword($getEntry, '12345678910', Attribute::PASSWORD_UNICODEPWD);
        $ldap->update($getName, $getEntry);

         $this->flashMessenger()->addMessage("Atualizado com sucesso.");
       	return $this->redirect()->toRoute('home');

      else:  

         $this->flashMessenger()->addMessage("Ocorreu um erro ao atualizar.");
       return $this->redirect()->toRoute('home');

    endif;
}

 

Share this post


Link to post
Share on other sites

Ola tente assim:

public function resetAction()
{
      $ldap_connect = $this->getLdap();
      $ldap = new Zend_Ldap($ldap_connect);

      $user = $this->getRequest()->getPost('user');
      $sen = $this->getRequest()->getPost('sen');

      $bind = $ldap->bind($user, $sen);

      if($bind) :

        $getName = $ldap->getCanonicalAccountName($user, Zend_Ldap::ACCTNAME_FORM_DN);
        $getEntry = $ldap->getEntry($getName);
        Zend_Ldap_Attribute::setPassword($getEntry, '12345678910', Zend_Ldap_Attribute::PASSWORD_UNICODEPWD);
        $ldap->update($getName, $getEntry);

         $this->flashMessenger()->addMessage("Atualizado com sucesso.");
       	return $this->redirect()->toRoute('home');

      else:

         $this->flashMessenger()->addMessage("Ocorreu um erro ao atualizar.");
       return $this->redirect()->toRoute('home');

    endif;
}

 

Share this post


Link to post
Share on other sites
3 horas atrás, Dimitry disse:

Ola tente assim:


public function resetAction()
{
      $ldap_connect = $this->getLdap();
      $ldap = new Zend_Ldap($ldap_connect);

      $user = $this->getRequest()->getPost('user');
      $sen = $this->getRequest()->getPost('sen');

      $bind = $ldap->bind($user, $sen);

      if($bind) :

        $getName = $ldap->getCanonicalAccountName($user, Zend_Ldap::ACCTNAME_FORM_DN);
        $getEntry = $ldap->getEntry($getName);
        Zend_Ldap_Attribute::setPassword($getEntry, '12345678910', Zend_Ldap_Attribute::PASSWORD_UNICODEPWD);
        $ldap->update($getName, $getEntry);

         $this->flashMessenger()->addMessage("Atualizado com sucesso.");
       	return $this->redirect()->toRoute('home');

      else:

         $this->flashMessenger()->addMessage("Ocorreu um erro ao atualizar.");
       return $this->redirect()->toRoute('home');

    endif;
}

 

 

Amigão, a partir da versão ZF3 não há necessidade de utilizar esses alias (Zend_Ldap, Zend_Ldap_Attribute).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By jeandelima
      Olá pessoal, estava querendo saber se podem me ajudar com uma pequena dúvida que surgiu há poucos dias.
       
      Estou com problemas pra importar um banco de dados pra o usar no meu servidor local (xampp). O banco de dados foi exportado do site de um cliente, e lá no server eles usam o mysql. Instalei a versão mais recente do xampp no meu pc, e quando fui importar o banco pra poder começar os trabalhos, deu vários erros de sintaxe. Daí fiz umas pesquisas e encontrei alguns materiais que mencionavam que o xampp agora usa o mariadb, e ele não é 100% compatível com mysql.
       
      Estou há um bom tempo sem mexer com programação e também sem me atualizar das coisas, e gostaria de saber se alguém sabe a partir de qual versão do xampp eles passaram a usar o mariadb. Eu já pesquisei mas não obtiver sucesso. E instalar e desinstalar inúmeras versões é algo trabalhoso e cansativo demais. Alguém poderia me ajudar?
       
      Desde já, muito obrigado.
       
      PS.: Por ser novo aqui no forum, e por não frequentar forum há muito tempo, acho que acabei postando no lugar errado. Peço perdão aos adms.
    • By Ygor Silva
      Boa tarde gente. Tenho meu site em Mobirise, pra pegar leads. 
      Ao cliente clicar em enviar ele só mostra a mensagem de "obrigado, aguarde nosso contato". 
      Eu gostaria que em vez disto, ele encaminhasse ele pra página de obrigado.
      Já tentei um mente de coisas mas não funcionou.
       
      Segue abaixo o código. Este meu formulário é formoid.
      <div data-form-type="formoid">                     <!---Formbuilder Form--->                     <form action="https://mobirise.com/" method="POST" class="mbr-form form-with-styler" data-form-title="Mobirise Form"><input type="hidden" name="email" data-form-email="true" value="A6LDZwZh8SsHY2SXE5G0uDeobTt+vGAPyztLTpaFnJ3YS523L+3ekb+dfC0ljSO2ENKcG2x7MzCrFsvX6BsE84UN+iQwUvASww4aTuqS7DVv4QO8axCqYvnhYxsAOEpX">                         <div class="row">                             <div hidden="hidden" data-form-alert="" class="alert alert-success col-12">Obrigado por deixar seu contato. Em breve ligaremos pra você.</div>                             <div hidden="hidden" data-form-alert-danger="" class="alert alert-danger col-12">                             </div>                         </div>                         <div class="dragArea">                             <div class="col-md-6  form-group" data-for="name">                                 <input type="text" name="name" placeholder="Seu nome" data-form-field="Name" required="required" class="form-control input display-7" id="name-form4-d">                             </div>                             <div class="col-md-6  form-group" data-for="phone">                                 <input type="text" name="phone" placeholder="Telefone" data-form-field="Phone" required="required" class="form-control input display-7" id="phone-form4-d">                             </div>                             <div data-for="email" class="col-md-12  form-group">                                 <input type="text" name="email" placeholder="E-mail" data-form-field="Email" class="form-control input display-7" required="required" id="email-form4-d">                             </div>                                                          <div class="col-md-12 input-group-btn  mt-2 align-center"><button type="submit" class="btn btn-primary btn-form display-4" href="obrigado.html#header3-2j">ENVIAR</button></div>                         </div>                     </form><!---Formbuilder Form--->                 </div>  
    • By Good
      Boa tarde,
       
      temos um servidor na amazon, e o site está direcionado para o servidor. Estamos tendo um problema, de vez em quando o servidor cai. 
       
      Gostaríamos de saber se tem algum programa no ubuntu, que monitore qual arquivo que teve alto consumo. Para sabermos se o código está escrito de maneira complexa, causando a queda do servidor.
       
      Eu lembro que uma vez a hostgator mandou um relatório, avisando que tal arquivo estava consumindo muito do servidor. É possível fazer esse monitoramento? Não temos como ficar 24h olhando por exemplo o htop..
       
      Aguardo uma resposta,
      obrigado!
    • By Marcos RJ
      Caros colegas. Tudo bem?
       
      Tenho uma loja virtual do qual tem foi integrado o Paypal. Para isso, fiz dessa forma. 
       
      $statusCompras = "<form action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\">            <input type=\"hidden\" name=\"cmd\" value=\"_xclick\" />            <!--Vendedor e URL de retorno, cancelamento e notificação-->            <input type=\"hidden\" name=\"business\" value=\"vendas@sitecliente.com.br\" />            <input type=\"hidden\" name=\"return\" value=\"http://www.sitecliente.com.br/retorno/\" />            <!--Internacionalização e localização da página de pagamento-->            <input type=\"hidden\" name=\"charset\" value=\"utf-8\" />            <input type=\"hidden\" name=\"lc\" value=\"BR\" />            <input type=\"hidden\" name=\"country_code\" value=\"BR\" />            <input type=\"hidden\" name=\"currency_code\" value=\"BRL\" />            <!--Informações sobre o produto e seu valor-->            <input type=\"hidden\" name=\"amount\" value=\"".$valorCarrinho."\">            <input type=\"hidden\" name=\"item_name\" value=\"Servico\" />            <input type=\"hidden\" name=\"item_number\" value=\"".$jmNumPedido->NumPedido."\">            <input type=\"hidden\" name=\"quantity\" value=\"1\" />";            $statusCompras .= "<button type='submit' class='btn btn-danger' style='color: #FFF; font-weight: bold'>";            $statusCompras .= "Aguardando Pagamento<br>";            $statusCompras .= "<span style='font-weight: normal'>Para efetuar seu pagamento<br>clique aqui!</span>"; Estou passando o número do pedido pelo item_number, porém o cliente está reclamando que não está conseguindo identificar a compra, pois muitos deles acabam se logando com os dados de terceiros e também acabam usando o cartão de terceiros. Minha intenção era passa o número do pedido pelo item_number para facilitar a identificação, mas acho que não funcionou. Alguém poderia me ajudar nisso? Sei que existe API, mas estou tendo dificuldades nisso. 
       
      Muito obrigado!!
    • By asacap1000
      Galera estou com uma dúvida, tenho a parte de envio de dados para em Post, com encode json e curl. Já pesquisei em todos os lugares e não encontrei nada pra clarear as idéias.
       
      a parte final é essa do envio (cliente)
      header("Content-Type: ".$mediaType); $headers = array(); $headers[] = "Accept: ".$mediaType; $headers[] = "Accept-Charset: ".$charSet; $headers[] = "Accept-Encoding: ".$mediaType; $headers[] = "Content-Type: ".$mediaType.";charset=".$charSet; $headers[] = "Authorization: Basic ".$AuthorizationHeaderBase64; $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,"contatos=$contatos"); #campos que serão enviados curl_setopt($ch, CURLOPT_USERPWD, $AuthorizationHeaderBase64); curl_setopt($ch, CURLOPT_HEADER, $headers); curl_setopt($ch, CURLINFO_HTTP_CODE, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);#ativa se for ter retorno do chamada $result = curl_exec($ch); $result2 = json_decode($result,true); curl_close($ch); if($result2 === false) { $err = 'Curl error: ' . curl_error($ch); $result2 = $err; echo "This is text".$err; } var_dump ($result2);  
      Preciso de ajuda para entender como deve ser feito a página que será chamada, no caso lado servidor.
       
      Como pode ver tenho um header configurado e será enviado com chave de autorização agora como isso é feito do lado servidor??
       
      Se alguém puder me ajudar, preciso entregar este webservice sexta feira 18/10. Todos os dados recebidos serão salvos no BD Oracle.
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.