I voted for “ask once”, which seems to be a good compromise between encouraging self-reliance and being user-friendly.
Although never asking could be okay, too, especially if you give out hints in a gradually more explicit fashion (which is a good idea anyway, I think). Then a player who only needs a slight nudge can stop after revealing the first steps, and will still feel some of the joy of solving it on his own.
If you ask for confirmation every time, it will probably just annoy players instead of steeling their resolve. If they request hints on repeated occasions, that could be considered evidence enough that they want to, so no need for another prompt each time.
(Well, theoretically, we might imagine them as hint-addicts, whose first-order preferences are not aligned with their second-order preferences… but that’s crossing over into philosophical territory. )
And just to put another option on the table: You could also do it in the style of Ulysses and the Sirens, by asking the player whether he wants to block access to the hints for the rest of the game.