Bom dia pessoal ...
Estou com o seguinte problema e gostaria de ver se alguém ja passou por isso:
- Ambiente: Servidor 2003 com WSS.
: Outro server rodando AD.
- Operação: necessito alterar os dados dos usuário no AD, isto ocorre quando o usuário altera os seus dados numa lista, isto dispara um workflow que chama um método de um webservice o quel efetua a gravação dos dados no AD. Ao executar o CommitChanges() ocorre o erro "general access denied error", analisando o erro mostra que o source é o AD.
Alguém ja pasou por isso ?
O usuário utilizaod possui permissões de administador do AD.
Abaixo segue o código utilizado:
[WebMethod]
public void AlteraAd(string stUsuario, string stPropriedade, string stValor)
{
string ldap = "LDAP://<dominio>";
string usuario = "<usuario>";
string senha = "<senha>;
DirectoryEntry entry = new DirectoryEntry(ldap, usuario, senha, AuthenticationTypes.Secure);
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = ("(sAMAccountName="+stUsuario+")");
SearchResult resEnt = mySearcher.FindOne();
string erro = "";
if (resEnt != null)
{
try
{
DirectoryEntry pessoa = new DirectoryEntry(resEnt.Path);
if (pessoa.Properties[stPropriedade.ToString()].Count > 0)
{
pessoa.Properties[stPropriedade.ToString()].Clear();
}
pessoa.Properties[stPropriedade.ToString()].Add(stValor.ToString());
pessoa.CommitChanges();
}
catch (Exception ex)
{
erro = ex.Message.ToString();
}
}
}