Custom implementation of IMembershipService
is a way to go if you don't want to use the default Orchard.Users module at all. Useful when you still want to do forms authentication, but just store the auth data somewhere else, not in UserPart.
If you would like to create a totally custom authentication scheme, that overrides the form-based default one (username + password), override IAuthenticationService
.
So, generally speaking:
IMembershipProvider
is about authentication data management (create/retrieve users)
IAuthenticationProvider
is about performing the authentication (sign in/out/get current user etc.)
Depending on your needs you can override either one or both.
The common auth modules, like the OpenAuth one, add additional authentication options to the existing default one without actually replacing it, IIRC.