Usuário com melhor resposta
integração com Active Directory

Pergunta
-
Respostas
-
Nunca usei, mas experimente por LDAP: http://www.freevbcode.com/ShowCode.Asp?ID=710
Todas as Respostas
-
Nunca usei, mas experimente por LDAP: http://www.freevbcode.com/ShowCode.Asp?ID=710
-
public DataSet RetornaUsuarios()
{
DirectoryEntry entry = new DirectoryEntry("LDAP://RootDSE");
string str = (string) entry.Properties["DefaultNamingContext"].Value;
DirectoryEntry searchRoot = new DirectoryEntry("LDAP://" + str);
DirectorySearcher searcher = new DirectorySearcher(searchRoot);
DataTable table = new DataTable("Colaboradores");
searcher.Filter = "(&(objectclass=user)(objectcategory=person)(userAccountControl=512))";
SortOption option = new SortOption("Name", SortDirection.Ascending);
searcher.Sort = option;
searcher.PageSize = 0x3e8;
searcher.SizeLimit = 0x3e8;
searcher.ServerTimeLimit = TimeSpan.FromMinutes(10.0);
searcher.PropertiesToLoad.Add("samAccountName");
searcher.PropertiesToLoad.Add("Name");
table.Columns.Add("Id", typeof(int));
table.Columns.Add("AccountName", typeof(string));
table.Columns.Add("Nome", typeof(string));
foreach (SearchResult result in searcher.FindAll())
{
if (((result.Properties["samAccountName"].Count > 0) & (result.Properties["Name"].Count > 0)))
{
DataRow row = table.NewRow();
row["AccountName"] = result.Properties["samAccountName"][0].ToString();
row["Nome"] = result.Properties["Name"][0].ToString();
row["id"] = ws_mssql.RetornaId((string) row["AccountName"]);
table.Rows.Add(row);
}
}
DataSet set = new DataSet("Colaboradores");
set.Tables.Add(table);
return set;
}Assim você consegue retornar atraves de um datatable todos os usuarios...
-
Existem + 2 formas de obter os usuários do Active Directory.
1ª - Abra usuários e computadores do Active Directory > Consultas Salvas > Crie uma consulta escolhendo usuário e como critéio de filtragem escolha nome e a opção presente. Após ter feito isso clique com o botão direito na consulta e escolha a opção exportar > arquivo CSV (excel). Com isso você terá uma planilha com todos os usuários do AD, e poderá então trabalhar no próprio excel jogando os dados numa combo.
2ª - Comando CSVDE ou LDIFDE.
De qualquer forma essas opções não são atualizáveis automaticamente, acredito que a opção LDAP já mencionada seja a mais correta para utilização no VBA.
[]s.