Working implementation of custom role provider