I have to confess that I hate membership provider. The default implementation is not very appropriate normally and I haven't seen so far a good implementation of a custom membership provider, probably because this is not possible :-)
So the question is:
In your opinion: which are the reasons for not having membership/role provider as a generic class? I mean, why Microsoft didn't select this approach.
EDIT
Reading the answer I realized that maybe it wasn't clear enough that I'm talking about MembershipProvider and RoleProvider. NOT about the core authentication mechanism of ASP NET.