-
Notifications
You must be signed in to change notification settings - Fork 0
/
ADHelper.cs
40 lines (39 loc) · 1.34 KB
/
ADHelper.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
using System.DirectoryServices;
namespace ThreatDetectionModule
{
internal static class ADHelper //TODO currently not needed to decide if
{
public static string GetUPNoutOfSAMAccountNAme(string SamAccountName)
{
string ldapPath = "LDAP://dc=ad,dc=ignastech,dc=cloud";
string username = SamAccountName.Split('\\')[1];
try
{
using (DirectoryEntry root = new DirectoryEntry(ldapPath))
{
DirectorySearcher searcher = new DirectorySearcher(root)
{
Filter = string.Format($"(&(objectClass=user)(samaccountname={username}))"),
SearchScope = SearchScope.Subtree
};
SearchResult result = searcher.FindOne();
if (result != null)
{
string val = result.GetDirectoryEntry().Properties["UserPrincipalName"].Value.ToString();
return val;
}
else
{
return null;
}
}
}
catch
{
Exception e = new Exception("LDAP lookup Error");
throw e;
}
}
}
}