Вы можете использовать User.InRole( "RoleName" )
в контроллере.
РЕДАКТИРОВАТЬ: приведенный ниже код не будет работать, поскольку GetCustomAttributes (), очевидно, возвращает копию каждого атрибута вместо ссылки на фактический атрибут. Оставлено как ответ, чтобы обеспечить контекст для других ответов.
Что касается установки его в атрибуте authorize, единственная идея, которая у меня есть, - установить для нее пустую строку в определении атрибута, а затем использовать отражение в типе контроллера, чтобы получить и изменить свойство CustomAttribute, соответствующее AuthorizeAttribute. (т. е. тот, тип которого AuthorizeAttribute) для каждого метода, который вас интересует. Таким образом вы сможете установить свойство Roles для вашего элемента конфигурации.
var attributes = typeof(MyController).GetMethod("Index")
.GetCustomAttributes(typeof(AuthorizeAttribute),
false)
as AuthorizeAttribute;
attributes[0].Roles = Config.GMPUser;
Я полагаю, что вы должны сделать это в файле Global.asax при запуске приложения, так что это нужно сделать только один раз.