/// <summary> /// Get user attrubutes from email address /// </summary> /// <param name="mailAddress">User Email Address</param> /// <returns>UserInfo Object</returns> public UserInfoResponse GetUserAttributes( RequestBody request ) { var userInfo = new UserInfoResponse(); string sessionKey = request.SessionKey; string mailAddress = request.Body; Session stat = ValidateSession( sessionKey ); if ( stat.IsAuthenticated == true ) { var searchFilter = string.Format( AdSearchFilter , mailAddress ); searcher.Filter = searchFilter; try { var searchResult = searcher.FindOne(); if ( searchResult != null ) { if ( searchResult.Properties.Contains( "title" ) ) userInfo.Title = (string)searchResult.Properties[ "title" ][ 0 ]; if ( searchResult.Properties.Contains( "givenName" ) ) userInfo.FirstName = (string)searchResult.Properties[ "givenName" ][ 0 ]; if ( searchResult.Properties.Contains( "sn" ) ) userInfo.LastName = (string)searchResult.Properties[ "sn" ][ 0 ]; if ( searchResult.Properties.Contains( "cn" ) ) userInfo.DisplayName = (string)searchResult.Properties[ "cn" ][ 0 ]; if ( searchResult.Properties.Contains( "samaccountname" ) ) userInfo.SamAccountName = (string)searchResult.Properties[ "samaccountname" ][ 0 ]; if ( searchResult.Properties.Contains( "department" ) ) userInfo.Department = (string)searchResult.Properties[ "department" ][ 0 ]; if ( searchResult.Properties.Contains( "mail" ) ) userInfo.EmailAddress = (string)searchResult.Properties[ "mail" ][ 0 ]; if ( searchResult.Properties.Contains( "employeeid" ) ) userInfo.EmployeeId = (string)searchResult.Properties[ "employeeid" ][ 0 ]; if ( searchResult.Properties.Contains( "telephonenumber" ) ) userInfo.BusinessPhone = (string)searchResult.Properties[ "telephonenumber" ][ 0 ]; if ( searchResult.Properties.Contains( "physicalDeliveryOfficeName" ) ) userInfo.PhysicalDeliveryOfficeName = (string)searchResult.Properties[ "physicalDeliveryOfficeName" ][ 0 ]; if ( searchResult.Properties.Contains( "msrtcsip-primaryuseraddress" ) ) userInfo.SipAccount = (string)searchResult.Properties[ "msrtcsip-primaryuseraddress" ][ 0 ]; if ( searchResult.Properties.Contains( "msrtcsip-line" ) ) userInfo.Telephone = (string)searchResult.Properties[ "msrtcsip-line" ][ 0 ]; if ( searchResult.Properties.Contains( "msrtcsip-primaryhomeserver" ) ) userInfo.PrimaryHomeServerDn = ( (string)searchResult.Properties[ "msrtcsip-primaryhomeserver" ][ 0 ] ).Replace( "CN=Lc Services,CN=Microsoft," , "" ); if ( searchResult.Properties.Contains( "userprincipalname" ) ) userInfo.Upn = (string)searchResult.Properties[ "userprincipalname" ][ 0 ]; //Get the IP Dialing Code and extensionfor projects if ( searchResult.Properties.Contains( "extensionAttribute1" ) && searchResult.Properties.Contains( "extensionAttribute2" ) ) { userInfo.OtherTelphone = (string)searchResult.Properties[ "extensionAttribute2" ][ 0 ] + searchResult.Properties[ "extensionAttribute1" ][ 0 ]; } } } catch ( Exception ex ) { userInfo.Message = ex.Message; return userInfo; } } return userInfo; }
/// <summary> /// Get AD Domain NetBios Name /// </summary> /// <param name="dnsDomainName">DNS Suffix Name</param> /// <returns>Domain NetBios Name</returns> public string GetNetbiosDomainName( RequestBody request ) { var netbiosDomainName = string.Empty; string sessionKey = request.SessionKey; string dnsDomainName = request.Body; Session stat = ValidateSession( sessionKey ); if ( stat.IsAuthenticated == true ) { try { var rootDse = new DirectoryEntry( string.Format( "LDAP://{0}/RootDSE" , dnsDomainName ) ); var configurationNamingContext = rootDse.Properties[ "configurationNamingContext" ][ 0 ].ToString(); var searchRoot = new DirectoryEntry( "LDAP://cn=Partitions," + configurationNamingContext ); var searcher = new DirectorySearcher( searchRoot ); searcher.SearchScope = SearchScope.OneLevel; // searcher.PropertiesToLoad.Add("netbiosname"); searcher.Filter = string.Format( "(&(objectcategory=Crossref)(dnsRoot={0})(netBIOSName=*))" , dnsDomainName ); var result = searcher.FindOne(); if ( result != null ) { netbiosDomainName = result.Properties[ "netbiosname" ][ 0 ].ToString(); } return netbiosDomainName; } catch ( Exception ex ) { var argEx = new ArgumentException( "Exception" , "ex" , ex ); throw argEx; } } return netbiosDomainName; }