예제 #1
0
        //  ==================================================================================
        /// <summary>
        /// GetAdditionalUserProperty
        /// To handle additional ADS properties which EvAdsFacade could not
        /// </summary>
        /// <param name="EvUser">EvAdsUserProfile.</param>
        /// <example>
        /// <code numberLines="true">
        /// string userId = "User" + Guid.NewGuid().ToString();
        /// EvAdsUserProfile evUser = new EvAdsUserProfile()
        /// {
        ///    EmailAddress = @"*****@*****.**",
        ///    SamAccountName = userId
        /// };
        /// EvAdConfig config = new EvAdConfig()
        ///		{
        ///			Server = "192.168.10.53",
        ///			ContextType = ContextType.Domain,
        ///		    RootContainer = "OU=Test Users,DC=evado,DC=local",
        ///		    UsersContainer = "OU=Test Users,DC=evado,DC=local",
        ///		    GroupsContainer = "OU=Test Users,DC=evado,DC=local",
        ///		    AdminName = @"evado",
        ///		    AdminPassword = "******",
        ///		    LdapString = "LDAP://192.168.10.53/dc=evado,dc=local"
        ///     };
        ///
        ///
        /// EvAdsLdapHelper helper = new EvAdsLdapHelper(config.LdapString, config.AdminName, config.AdminPassword);
        /// helper.GetAdditionalUserProperty(evUser);
        /// </code>
        /// </example>
        //  ----------------------------------------------------------------------------------
        public void GetAdditionalUserProperty(EvAdsUserProfile EvUser)
        {
            DirectoryEntry deUser = this.GetDirectoryEntry(EvUser);

            if (deUser == null)
            {
                return;
            }

            EvUser.JobTitle         = GetProperty(deUser, _ldapTitleProp);
            EvUser.OrgId            = GetProperty(deUser, _ldapDepartmentProp);
            EvUser.OrganisationName = GetProperty(deUser, _ldapCompanyProp);

            string info = GetProperty(deUser, _ldapInfo);

            if (info != null)
            {
                string [] parts = info.Split(';');

                EvUser.PasswordResetToken = parts [0];

                string resetExpiry = parts [1];

                if (resetExpiry != null && resetExpiry != String.Empty)
                {
                    EvUser.PasswordResetTokenExpiry = DateTime.ParseExact(resetExpiry, "s", System.Globalization.CultureInfo.InvariantCulture);
                }
            }
        }
예제 #2
0
        //  ==================================================================================
        /// <summary>
        /// SetAdditionalUserProperty
        /// To handle additional ADS properties which EvAdsFacade could not
        /// </summary>
        /// <param name="EvUser">EvAdsUserProfile.</param>
        /// <example>
        /// <code numberLines="true">
        /// string userId = "User" + Guid.NewGuid().ToString();
        /// EvAdsUserProfile evUser = new EvAdsUserProfile()
        /// {
        ///    EmailAddress = @"*****@*****.**",
        ///    SamAccountName = userId
        /// };
        /// evUser.JobTitle = "Tester 1";
        /// evUser.OrgId = "Evado";
        /// evUser.OrganizationName = "Evado Medical Solution";
        /// EvAdConfig config = new EvAdConfig()
        ///		{
        ///			Server = "192.168.10.53",
        ///			ContextType = ContextType.Domain,
        ///		    RootContainer = "OU=Test Users,DC=evado,DC=local",
        ///		    UsersContainer = "OU=Test Users,DC=evado,DC=local",
        ///		    GroupsContainer = "OU=Test Users,DC=evado,DC=local",
        ///		    AdminName = @"evado",
        ///		    AdminPassword = "******",
        ///		    LdapString = "LDAP://192.168.10.53/dc=evado,dc=local"
        ///     };
        ///
        ///
        /// EvAdsLdapHelper helper = new EvAdsLdapHelper(config.LdapString, config.AdminName, config.AdminPassword);
        /// helper.SetAdditionalUserProperty(evUser);
        /// </code>
        /// </example>
        //  ----------------------------------------------------------------------------------
        public void SetAdditionalUserProperty(EvAdsUserProfile EvUser)
        {
            DirectoryEntry deUser = GetDirectoryEntry(EvUser);

            string passwordResetTokenExpiry = String.Empty;

            if (EvUser.PasswordResetTokenExpiry != null)
            {
                passwordResetTokenExpiry = EvUser.PasswordResetTokenExpiry.Value.ToString("s", System.Globalization.CultureInfo.InvariantCulture);
            }

            if (deUser != null)
            {
                if (String.IsNullOrEmpty(EvUser.JobTitle) == false)
                {
                    SetProperty(deUser, _ldapTitleProp, EvUser.JobTitle);
                }
                if (String.IsNullOrEmpty(EvUser.OrgId) == false)
                {
                    SetProperty(deUser, _ldapDepartmentProp, EvUser.OrgId);
                }
                if (String.IsNullOrEmpty(EvUser.OrgId) == false)
                {
                    SetProperty(deUser, _ldapCompanyProp, EvUser.OrganisationName);
                }
                if (String.IsNullOrEmpty(EvUser.PasswordResetToken) == false &&
                    String.IsNullOrEmpty(passwordResetTokenExpiry) == false)
                {
                    SetProperty(deUser, _ldapInfo, EvUser.PasswordResetToken + ";" + passwordResetTokenExpiry);
                }
                deUser.CommitChanges( );
            }
        }
        public EvAdsUserProfile FindUserObjectById(string evUserId)
        {
            EvAdsUserProfile evUser = null;
            var deSearch            = GetDirectorySearcher();

            deSearch.Filter = SearchFilter("user", evUserId);
            deSearch.PropertiesToLoad.Add("department");
            var result = deSearch.FindOne();

            DisplayProperties(result);

            SetProperty(result, "pager", "2222-2222-222");
            Console.ReadLine();
            DisplayProperties(result);

            Console.ReadLine();
            var deUser = GetDirectoryEntry(result);

            evUser = new EvAdsUserProfile(deUser.Properties["cn"].Value.ToString())
            {
                DisplayName          = deUser.Properties["cn"].Value.ToString(),
                EmailAddress         = deUser.Properties["mail"].Value.ToString(),
                VoiceTelephoneNumber = deUser.Properties["mobile"].Value.ToString()
            };

            return(evUser);
        }
예제 #4
0
        } // END DeleteItem method

        // =====================================================================================
        /// <summary>
        /// Description:
        /// Creates or Updates the user profile in the ADS.
        /// </summary>
        /// <param name="UserToSave">EvAdsUserProfile</param>
        /// <param name="UserToSave">EvAdsUserProfile</param>
        /// <param name="OutEvUser">EvAdsUserProfile</param>
        // -------------------------------------------------------------------------------------
        public EvAdsCallResult SaveItem(
            EvAdsUserProfile UserToSave,
            bool isCreatingNewUser,
            out EvAdsUserProfile OutEvUser)
        {
            this.LogMethod("SaveItem method.");


            this.LogValue("UserToSave.SamAccountName: " + UserToSave.SamAccountName);
            this.LogValue("isCreatingNewUser: "******"UserToSave.Password: "******"ACTION: SaveItem");
                    return(EvAdsCallResult.Invalid_Argument);
                }
                else
                {
                    if (isCreatingNewUser == true &&
                        callResult == EvAdsCallResult.Object_Not_Found)
                    {
                        OutEvUser = _evAdFacade.CreateNewUser(UserToSave);
                        this.LogMethod_End("ACTION: CreateNewUser");
                    }
                    else
                    {
                        if (isCreatingNewUser == false &&
                            callResult == EvAdsCallResult.Success)
                        {
                            this.LogValue("ACTION: UpdatE user");
                            OutEvUser = _evAdFacade.UpdateAdUser(UserToSave);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                this.LogValue(EvStatics.getException(Ex));
            }
            this.LogAssembly(this._evAdFacade.Log);

            this.LogMethod_End("SaveItem");
            return(EvAdsCallResult.Success);
        }
예제 #5
0
        //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        #endregion

        #region Update Data methods

        // =====================================================================================
        /// <summary>
        /// DeleteItem method
        ///
        /// Description:
        /// Deletes the User from the table.
        ///
        /// </summary>
        /// <param name="Profile">EvAdsUserProfile</param>
        // -------------------------------------------------------------------------------------
        public Evado.Model.EvEventCodes DeleteItem(EvAdsUserProfile Profile)
        {
            this.LogMethod("DeleteItem method.");
            this.LogValue("Profile.SamAccountName: " + Profile.SamAccountName);
            this._evAdFacade.LogLevel = this._LogLevel;

            this._evAdFacade.DeleteUserFromAd(Profile);

            this.LogAssembly(this._evAdFacade.Log);

            return(Evado.Model.EvEventCodes.Ok);
        } // END DeleteItem method
예제 #6
0
 protected bool Equals(EvAdsUserProfile other)
 {
     return(string.Equals(_userId, other._userId) &&
            string.Equals(EmailAddress, other.EmailAddress) &&
            string.Equals(Description, other.Description) &&
            string.Equals(DisplayName, other.DisplayName) &&
            Enabled.Equals(other.Enabled) &&
            string.Equals(GivenName, other.GivenName) &&
            string.Equals(SamAccountName, other.SamAccountName) &&
            string.Equals(Surname, other.Surname) &&
            UserCannotChangePassword.Equals(other.UserCannotChangePassword) &&
            string.Equals(UserPrincipalName, other.UserPrincipalName) &&
            string.Equals(VoiceTelephoneNumber, other.VoiceTelephoneNumber));
 }
예제 #7
0
        //  ==================================================================================
        /// <summary>
        /// Get DirectoryEntry for User after finding out with SamAccountName
        /// </summary>
        /// <param name="DE">DirectoryEntry.</param>
        /// <param name="PropertyName">string.</param>
        /// <param name="NewValue">string.</param>
        //  ----------------------------------------------------------------------------------
        private DirectoryEntry GetDirectoryEntry(EvAdsUserProfile EvUser)
        {
            //
            // Find user by SamAccountName
            //
            DirectorySearcher deSearch = this.GetDirectorySearcher( );

            if (deSearch == null)
            {
                return(null);
            }
            deSearch.Filter = SearchFilter("user", EvUser.SamAccountName);
            SearchResult result = deSearch.FindOne( );

            DirectoryEntry deUser = result.GetDirectoryEntry( );

            return(deUser);
        }
예제 #8
0
 //  ==================================================================================
 /// <summary>
 /// AddEvUser method
 /// </summary>
 /// <param name="EvUser">EvAdsUserProfile.</param>
 // -------------------------------------------------------------------------------------
 public void AddEvUser(EvAdsUserProfile EvUser)
 {
     _evUsers.Add(EvUser);
 }
예제 #9
0
        }// Close getTrial method

        public void AddGroupsToEvAdsUser(ref EvAdsUserProfile evUser)
        {
            this._evAdFacade.AddGroupsToEvAdsUser(ref evUser);
        }