/// <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; } }
public async Task <ActionResult> PostLockUser(Guid userId, [FromBody] UserLockRequest request) { await _userService.LockUser(userId, request?.LockLength, request?.IsPermanant); return(NoContent()); }