Я бы лично рекомендовал сначала использовать стандартный поставщик членства для создания и аутентификации пользователей, а затем, как только вы убедились, что пользователь не просто «парень с улицы», используйте свою собственную пользовательскую архитектуру. чтобы убедиться, что аутентифицированный пользователь имеет доступ к контроллеру и действиям, к которым он пытается получить доступ.
Встроенный поставщик членства заботится о многих нюансах в отношении аутентификации пользователей, хранения паролей и тому подобного. Он использует лучшие практики, чтобы избежать атак грубой силы, атак радужного стола и т. Д. Это проверено и верно.
Но, похоже, ваша структура разрешений для каждого модуля может соответствовать или не соответствовать форме поставщиков ролей ASP.NET. Если они это сделают, это все хорошо, и было бы неплохо реализовать пользовательский поставщик ролей. Но если ваши потребности «нестандартны», вам, вероятно, будет лучше просто вручную проверить права в точке, которая наиболее подходит для вас (контроллер, действие, фильтр запросов и т. Д.).