Example #1
0
        /// <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;
        }
Example #2
0
        /// <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;
        }