This might be kind of vague, but I was thinking about this the other day. When someone asks "Who are you?", what are they really wanting to know? Is your name really enough to explain who you are? Maybe the answer represents what you think of yourself... or maybe I'm just taking this way too philosophically.
If the situation is more social, it is more likely to be a request for an introduction. In that case responding with your name, and how you fit into the group socially ("I'm Joe, Jeff's friend from college.") should be fine.
If it is more professional, it is more likely to be a request for your role / function in the situation. "I'm Joe Smith, the lead programmer on project Y. I work with Mr. Gates's team."
It does depend on context, as well as the manner in which it is asked, though.
"maybe I'm just taking this way too philosophically". I think so. In common situations people tend to be more practical than philosophical.
When someone asks "Who are you?". Chances are they just want your name.
In some situations (if they interpret your presence as out of place or perhaps a even a threat) they might wan't your function. like Nabeel said, "I am the shop manager".
Maybe if a police officer ask you; tell him, "I am a wave of consciousness swirling wistfully through a reality of my own observation". Um, on second thought, tell him both your name and your function "my name is John, I'm the shop keeper".
If someone asks me "Who are you?", the context is what is important. If they are a snob, then it has a derogatory meaning. If they are simply asking your name, it has an entirely different meaning. If you answer with a self-congratulatory biography, then you sound arrogant in either situation. Therefore, the best response is "Who are you?", then respond in kind :)