Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public IUsuario LoginValidandoAD(string emailOuLogin, string senha)
- {
- var ADServiceArr = Configuracoes.ADService.Split('§');
- var ADDomainArr = Configuracoes.ADDomain.Split('§');
- var ADUserArr = Configuracoes.ADUser.Split('§');
- var ADPasswordArr = Configuracoes.ADPassword.Split('§');
- var emailDoAd = string.Empty;
- var loginDoAd = string.Empty;
- var estaValidoNoAd = false;
- for (var i = 0; i < ADServiceArr.Length; i++)
- {
- try
- {
- using (var pc = new PrincipalContext(ContextType.Domain, ADDomainArr[i]))
- {
- estaValidoNoAd = pc.ValidateCredentials(emailOuLogin, senha, ContextOptions.Negotiate);
- Log.Info(string.Format("Esta valido no ad: {0}", estaValidoNoAd));
- }
- if (estaValidoNoAd)
- {
- var entry = new DirectoryEntry(ADServiceArr[i], string.Concat(ADDomainArr[i], "\\", ADUserArr[i]), ADPasswordArr[i]);
- var searcher = new DirectorySearcher(entry) { Filter = "(SAMAccountName=" + emailOuLogin + ")" };
- searcher.PropertiesToLoad.Add("mail");
- searcher.PropertiesToLoad.Add("samaccountname");
- Log.Info(string.Format("ADService: {0}, ADDomain: {1}, ADUser: {2}, ADPass: {3}", ADServiceArr[i], ADDomainArr[i], ADUserArr[i], ADPasswordArr[i]));
- Log.Info("ADSearcherFilter: " + searcher.Filter);
- Log.Info("ADSearcherPropertiesToLoad: 'mail'");
- var searchResult = searcher.FindOne();
- if (searchResult != null)
- {
- emailDoAd = searchResult.Properties["mail"].Count > 0 ? searchResult.Properties["mail"][0].ToString() : string.Empty;
- loginDoAd = searchResult.Properties["samaccountname"].Count > 0 ? searchResult.Properties["samaccountname"][0].ToString() : string.Empty;
- if (!string.IsNullOrEmpty(emailDoAd) || !string.IsNullOrWhiteSpace(loginDoAd))
- break;
- }
- }
- }
- catch (Exception ex)
- {
- Log.Info(string.Format("ERRO AO CONECTAR NO SERVIDOR DE AD (server: {0}, domain: {1}, user: {2}, pw: {3}) exception message: {4}", ADServiceArr[i], ADDomainArr[i],
- ADUserArr[i], ADPasswordArr[i], ex.Message));
- }
- }
- if (!estaValidoNoAd)
- throw new UsuarioInexistenteNoAdException();
- Log.Info("ADSearchResultMail: " + emailDoAd);
- var usuario = Login(emailDoAd) ?? Login(loginDoAd);
- if (usuario == null)
- throw new UsuarioNaoEncontradoException();
- Log.Info("ADUserFromDB: " + (usuario.Nome));
- return usuario;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement