Я бы создал вашу собственную реализацию IPrincipal, которая бы возвращала значения 1-10 для ролей, которые представляют уровень авторизации, который есть у пользователя. Затем вы назначаете это как основное разрешение при аутентификации вашего пользователя.
Затем необходимо применить атрибут PrincipalPermission ко всем методам (т. Е. К методам плагина и т. Д.), Чтобы позволить людям в соответствующей роли выполнять только код.
Например, если у меня пятый уровень, мне назначены роли 1, 2, 3, 4, 5.
У одного метода может быть атрибут PrincpalPermission, где для свойства Role установлено значение 6, к которому у меня нет доступа, и другой метод с атрибутом PrincipalPermission со свойством Role, установленным в 3, что я бы сделал. *