Ejemplo n.º 1
0
        /// <summary>
        /// Disable or unlock AD User Account
        /// </summary>
        /// <param name="userinfo"></param>
        /// <returns>ResponseMessage</returns>
        public ResponseMessage UnlockADAccount( UserLockRequest userinfo )
        {
            ResponseMessage status = new ResponseMessage();

            status.IsSuccessful = false;
            status.Message = string.Empty;

            Session stat = ValidateSession( userinfo.DomainInfo.SessionKey );

            if ( stat.IsAuthenticated == true )
            {

                string uri = FixADURI( userinfo.DomainInfo.ADHost , userinfo.DomainInfo.ContainerPath );

                if ( string.IsNullOrWhiteSpace( uri ) )
                {
                    status.Message = status.Message = "AD Host is not allowed to be empty, kindly provide the AD Host";
                    return status;
                }

                bool isAllowWite = CheckWriteOermission( uri , userinfo.DomainInfo.BindingUserName , userinfo.DomainInfo.BindingUserPassword );

                try
                {
                    UserPrincipal usr = FindADUser( userinfo.SamAccountName , userinfo.DomainInfo );

                    if ( usr != null )
                    {
                        if ( userinfo.LockUser == true )
                        {
                            if ( usr.IsAccountLockedOut() )
                                usr.UnlockAccount();
                        }
                        else
                            usr.Enabled = false;

                        usr.Save();

                        status.Message = " Transaction has been executed successfully.";
                        status.IsSuccessful = true;

                        return status;
                    }
                    else
                    {
                        status.Message = "User doesn't exist";
                        return status;
                    }
                }
                catch ( Exception ex )
                {
                    status.Message = @"Failed to create PrincipalContext: " + ex;
                    return status;
                }
            }
            else
            {
                status.Message = "Kindly authenticate first";
                return status;
            }
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> PostLockUser(Guid userId, [FromBody] UserLockRequest request)
        {
            await _userService.LockUser(userId, request?.LockLength, request?.IsPermanant);

            return(NoContent());
        }