I have no problem telling a player that their character would not know something based upon the character's culture and background and where they are in the world just as I would hand out free information to characters based upon the same.
Ok, but does that mean that you would tell them they are not allowed to take an action that you think is based on that forbidden knowledge?
Player: "I'll quickly get out some oil and light a torch..."
DM: "You wouldn't know that trolls are vulnerable to fire."
Player: "Um. Ok. My character doesn't know that. Anyway, I'll light a torch..."
DM: "I said you don't know they are vulnerable to fire."
Player: "So that means I'm not allowed to use fire?"
DM: "Your character wouldn't know to do that."
Player: "To do what? Burn something?"
Etc.
Or, if that scenario seems farcical, imagine this one (which I used in another thread):
1. In the first iteration, your 7 year old niece who has never played D&D before does
exactly the right thing (i.e., burning trolls) purely by chance. Do you allow her to do it? (Personally, I'd celebrate it, and tell the story for years.)
2. In the second iteration, you find out that your dirty metagaming dad (your brother) put her up to it. Now how do you feel about it?
3. In the third iteration, your sister-in-law one day tells you that your brother was lying about his version of it. That when their daughter came home from the game and told the story, he said, "I'm going to yank his chain by telling him I put her up to it."
Now how do you feel about it?
4. And then, after that, you find out that your precocious niece reads Enworld and knew all about trolls and was totally freaking metagaming the whole time but was savvy enough to keep quiet about it.
If the answers are....
1. That's fine.
2. DIRTY METAGAMER!
3. Oh, that's fine again.
4. DIRTY METAGAMER!
...then it should make you realize that this metagaming hangup is all in your head. That the exact same event at the table was either awesome or cheating,
depending on your beliefs about what the player is thinking. So...why not stop worrying about what the player is thinking?