Arquivos

Posts Tagged ‘ad’

C# buscando usuários no AD

Existe muito material na Internet sobre como efetuar uma busca no Active Directory (AD) utilizando C#, porém, em poucos lugares encontrei como efetuar um filtro por mais que uma condição.

No exemplo abaixo, estou pesquisando usuários (user), do tipo pessoas (person) e que sejam membros do grupo Office365.

Veja só:

ds.Filter = string.Format("(&(&({0}) {1}) {2})", "objectClass=user", "(objectCategory=person)", "(memberOf=CN=Office365,DC=infopass,DC=tix11,DC=com)");

O filtro ficará assim:

(&(& (objectClass=user) (objectCategory=person) (memberOf=CN=Office365,DC=infopass,DC=tix11,DC=com)) 

Isso quer dizer em “portugol”:

objectClass=user E objectCategory=person E memberOf=CN=Office365,DC=infopass,DC=tix11,DC=com

Se precisar usar um OU, use | ao invés de &.

Um pequeno trecho do código para ajudar mais:

DirectoryEntry de = GetDirectoryEntry();
DirectoryEntry rag = null;
object obj = de.NativeObject;
DirectorySearcher ds = new DirectorySearcher(de);
ds.Filter = string.Format("(&(&({0}) {1}) {2})", "objectClass=user", "(objectCategory=person)", "(memberOf=CN=Office365,DC=infopass,DC=tix11,DC=com)");
ds.SearchScope = SearchScope.Subtree;
SearchResultCollection results = ds.FindAll();
Console.WriteLine("Usuarios encontrados no grupo Office365 - " + results.Count);
....
foreach (SearchResult result in results)
{
    rag = (DirectoryEntry)result.GetDirectoryEntry();
....

Enjoy!

CategoriasC# Tags:, , , , ,

Alterar proprierades de usuário do AD com c++

dezembro 16, 2013 2 comentários

Segue um código que deve ser adaptado, o mesmo serve para alterar as propriedades de um usuário do AD com c++.

Enjoy!

<br />try{<br />String^ __path = "LDAP://Adatum.com/CN=USERS,DC=Adatum,DC=com";<br />DirectoryEntry^ parentEntry = gcnew    DirectoryEntry(__path );<br />DirectorySearcher^ search = gcnew DirectorySearcher(parentEntry);<br />search-&gt;Filter = "(SAMAccountName=fulano)";<br />SearchResult^ result = search-&gt;FindOne();<br />DirectoryEntry^ user = result-&gt;GetDirectoryEntry();<br />user-&gt;Properties["userAccountControl"]-&gt;Value = "514";<br />user-&gt;CommitChanges();<br /><br />} catch (Exception ^err) {<br />//(err-&gt;Message);<br />}<br />
Categorias.net, C#, C++ Tags:, , ,

Validar um usuário no Active Directory no C#

Tive a necessidade de autenticar um usuário em um Active Directory a partir de uma aplicação Web C#. Meu código ficou assim:


bool valid = false;
try
{
  // create a "principal context" - e.g. your domain (could be machine, too)
  using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "SEU DOMINIO"))
  {
    // validate the credentials
    valid = pc.ValidateCredentials(username, password);
  }
}
catch (Exception ex)
{
  WriteLog("Erro de acesso ao DB: " + ex.Message);
}
return valid;

Simples e funcional.

Categorias.net Tags:, , , , ,
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 151 outros seguidores