ASP.NET: arquitetura de permissão / autenticação

Estou pensando em construir umautenticação no meu aplicativo ASP.NET com os seguintes requisitos.

Um usuário tem exatamente uma função (ou seja, Admin, SalesManager, Sales, ....)Uma função tem um conjunto de permissões para acessar CRUD um subconjunto de objetos existentes. I.e. "As vendas têm permissão CREAD, READ, WRITE no tipo de objeto" Produtos ", mas não DELETE"De alguma forma, eu gosto que as permissões estejam em uma hierarquia com herança para que, por exemplo, o administrador não precise especificar todos os objetos disponíveis.O sistema deve ser capaz de responder rapidamente à pergunta "O usuário X tem permissão para executar Y no objeto Z"Todo o banco de dados gerenciado (MSSQL), implementado em C # / ASP.NET

Gostaria de receber feedback sobre esses requisitos? Alguma idéia de como implementar isso usando a estrutura do ASP.NET (tanto quanto possível)? (No entanto, também estou interessado em saber como isso pode ser alcançado sem associações)

questionAnswers(5)

yourAnswerToTheQuestion