CNN reported the Web site Ghased News said the man missed Ahmadinejad, hitting a banner behind him instead.
CNN said it could not independently confirm the report.
The event allegedly happened in the northern city of Sari during a memorial for an oil minister who died last year, Ghased News reported.
The report said attendees at the event beat the 45-year-old man until security forces intervened. The thrower was identified only as Rashid S., a Sari resident once jailed for throwing eggs and tomatoes at former President Mohammad Khatami.
The textile worker had been out of work for a year.
CNN said throwing shoes is a sign of deep disrespect in Arab countries, but is not an Iranian tradition. In December 2008, an Iraqi journalist threw his shoes at President George W. Bush during a news conference in Baghdad in protest of the 2003 U.S. invasion.
The reporter was released after nine months in jail.