Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.05 KB | None | 0 0
  1. public IUsuario LoginValidandoAD(string emailOuLogin, string senha)
  2. {
  3. var ADServiceArr = Configuracoes.ADService.Split('§');
  4. var ADDomainArr = Configuracoes.ADDomain.Split('§');
  5. var ADUserArr = Configuracoes.ADUser.Split('§');
  6. var ADPasswordArr = Configuracoes.ADPassword.Split('§');
  7.  
  8. var emailDoAd = string.Empty;
  9. var loginDoAd = string.Empty;
  10. var estaValidoNoAd = false;
  11.  
  12. for (var i = 0; i < ADServiceArr.Length; i++)
  13. {
  14. try
  15. {
  16. using (var pc = new PrincipalContext(ContextType.Domain, ADDomainArr[i]))
  17. {
  18. estaValidoNoAd = pc.ValidateCredentials(emailOuLogin, senha, ContextOptions.Negotiate);
  19.  
  20. Log.Info(string.Format("Esta valido no ad: {0}", estaValidoNoAd));
  21. }
  22.  
  23. if (estaValidoNoAd)
  24. {
  25. var entry = new DirectoryEntry(ADServiceArr[i], string.Concat(ADDomainArr[i], "\\", ADUserArr[i]), ADPasswordArr[i]);
  26.  
  27. var searcher = new DirectorySearcher(entry) { Filter = "(SAMAccountName=" + emailOuLogin + ")" };
  28. searcher.PropertiesToLoad.Add("mail");
  29. searcher.PropertiesToLoad.Add("samaccountname");
  30.  
  31. Log.Info(string.Format("ADService: {0}, ADDomain: {1}, ADUser: {2}, ADPass: {3}", ADServiceArr[i], ADDomainArr[i], ADUserArr[i], ADPasswordArr[i]));
  32.  
  33. Log.Info("ADSearcherFilter: " + searcher.Filter);
  34. Log.Info("ADSearcherPropertiesToLoad: 'mail'");
  35.  
  36. var searchResult = searcher.FindOne();
  37.  
  38. if (searchResult != null)
  39. {
  40. emailDoAd = searchResult.Properties["mail"].Count > 0 ? searchResult.Properties["mail"][0].ToString() : string.Empty;
  41.  
  42. loginDoAd = searchResult.Properties["samaccountname"].Count > 0 ? searchResult.Properties["samaccountname"][0].ToString() : string.Empty;
  43.  
  44. if (!string.IsNullOrEmpty(emailDoAd) || !string.IsNullOrWhiteSpace(loginDoAd))
  45. break;
  46. }
  47. }
  48.  
  49. }
  50. catch (Exception ex)
  51. {
  52. 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],
  53. ADUserArr[i], ADPasswordArr[i], ex.Message));
  54. }
  55. }
  56.  
  57. if (!estaValidoNoAd)
  58. throw new UsuarioInexistenteNoAdException();
  59.  
  60. Log.Info("ADSearchResultMail: " + emailDoAd);
  61.  
  62. var usuario = Login(emailDoAd) ?? Login(loginDoAd);
  63.  
  64. if (usuario == null)
  65. throw new UsuarioNaoEncontradoException();
  66.  
  67. Log.Info("ADUserFromDB: " + (usuario.Nome));
  68.  
  69. return usuario;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement