asp.net Acesso baseado em função do MVC ao controlador

Muitos artigos on-line sobre acesso baseado em função falam em aplicar algo assim para garantir o acesso baseado em função a um controlador ou ação

[Authorize(Roles = "Admin, Manager")]
public class SomeController : Controller
{ 

}

Tudo bem, mas agora se eu precisar implementar meu próprio acesso baseado em função personalizado, em que tenho funções em uma tabela [RoleMaster] e as funções atribuídas a um usuário de uma tabela [Usuário] em outra tabela chamada [UserRoles]. No meu código, terei um objeto de usuário em sessão que agora terá uma lista de Funções

public class RegisteredUsers
{

    //... other user properties

    public List<UserRole> Roles { get; set; }

}

public class UserRole
{

    public string RoleID { get; set; }
    public string RoleName { get; set; }
    //... other properties

}

Agora, como verifico a propriedade UserRole.RoleName na lista de Funções no objeto RegisteredUsers como sendo compatível com qualquer um dos valores atribuídos ao atributo Authorize usando: [Authorize (Roles = "Admin, Manager")]. Em alguns casos, se as funções tiverem Admin ou Gerente, elas deverão ter acesso. Em alguns casos, desejarei que eles tenham tanto a função de administrador quanto a de gerente para obter acess

Além disso, no futuro, se novas funções forem adicionadas ao sistema, precisarei reconstruir e reimplementar meu aplicativo com todos os atributos de Autorização refeito

Não consegui encontrar nenhum exemplo claro de implementar o mesmo, ou talvez não esteja pesquisando corretamente. Por favor, me ajude da maneira que puder. Obrigado pelo seu tempo..

questionAnswers(4)

yourAnswerToTheQuestion