As I know how difficult is sometimes for a photographer to make more than just snapshots, let me add some comments on this thread:
Not only in Iran, you are supposed to ask people before taking their photo everywhere in the world. Unless you are on a mission for NG. That's politeness. Especially for portraits. Somewhere is understood to pay a small fee for it, even to children. In public places in Iran, like streets or squares, where people form only a fraction of your frame, is shouldn't really be any problem. If you notice you are annoying too many people, like seeing them changing their direction of walking, or women covering their faces, just wait a while or simply move to another location. Do not get pushy in situations where they can't avoid being in front of your camera, and they give obvious signs showing they don't want be photographed. Lower your camera and show that you respect their will, apologize even if it is not necessary to people concerned passing by.
However, there is a difference in cultures. Islamic culture considers photographing women wothout prior agreement inpolite, inappropriate and rude. In some places like Yemen you might get a stone in your head or camera. Iran is tolerant country, acting like this would in worst case result in shouting at you, either by woman or man. Many times you might get away with quick snap - they nitice you but pretend not to. Take into consideration that it is a big difference between major cities, which are more liberal, pakced with domestic tourists with digital cameras or videos, or rural areas, whre is better always to ask. Note that sometimes it's better to ask a man first for photographing his wife or daughter. Take a shot of him too, so he won't feel ignored.
A few hints I consider useful:
- make friends and acquaintances, linger with them for a while, arrange a late afternoon stroll, they can help with language barriers, and are more easier convincing others to be photographed,
- start a conversation, like "which town are you from", a few sentences relaxes people, especially families with children, who are curious about foreigners; they will not feel like an object in a matter of seconds,
- say you are a hobby photographer, and photographing to you is an art,
- get to first bookshop, find a nice big book with plenty of photos of Iran, and learn the photographer's name, and use it, they are couple of them well known throughout the country, knowing them will rank you more serious,
- print your best and most attractive photos of people and stack them into small album to show when your potential models in doubt,
- mention why you want to photograph particular person, for example "she has a beautiful eyes" or "his beard is remarkable (or well taken care of)", or "this child's look inspires me"; never mention womens' body shapes or say "she's sexy",
- get a sleeveless jacket or a badge with your (any) photo club visible, or try to look professional in any way,
- tripod is a great idea, set it a bit aside of crowds, prepare slowly, keep your gear (photo backpack) in front of you or below your tripod (you never know), you might quickly get someone beside you giving you a bit of advice of dos and donts,
- some towns are spectacular at night, they have electricity to spare, so many squares and monuments are beautifully lit (try Hamedan main square, one of the buildings is a police station, and you can't say which one, so if you point right at it, someone pasing by will tell you); night out is safe as there is no nightlife and no alcohol, it's unlikely one would harass you,
- many people pasing by you beside a tripod will say "Welcome to Iran!". Reply always!
- wear a smile
- if something looks like military or government installation, then probably is - steer clear of it!
- and one more thing which I am not so sure about it, but I think it's worth mentioning: if a particular middle-aged person asks you many questions (not only what you think of Iran, or Iranian people, this will be asked by everyone), like in which town you were yesterday, what you went to see, how long are you staying in this town, in which hotel you are, when you move forward, and how, bus , plane or train, or provoke any political or religious opinions), it is likely to be a government agent, so just provide him with all the information, it will ease their work in tracking you down, and make you less suspicious.
It's well remembering also that being religious is more respected than being ateist, so you don't have to pretend to avoid religious debates. In Quran there is a chapter consacrated to Virgin Mary (Miryam), and many great personalities from Old Testament are being highly respected in religious schools, like Salomon (Suleyman).
Like Europe using latin letters in many different languages, Iranians use arab letters, but their language is farsi and they are Persians (not Arabs). Keep that in mind!
As for demonstrations and religious public events, I can't think of a good advice. Grab a guide or ask a policeman!
And yes, long hair, many would consider it messy and untidy, so get rid of it, it'll grow again.
This is from my experience, the world is turning all the time - I hope those friendly, trustful and tactful Iranians will never change.