Pergunta

É possível usar as permissões baseadas em reivindicações para proteger os campos EF usando Post Sharp.Temos um aplicativo multi-tenanted que estamos mudando para as reivindicações e também temos problemas de quem pode ler / escrever para quais campos.Eu vi isso, mas parece baseado em função http://www.postsharp.net/aspects/examples/security.

Tanto quanto eu posso ver, seria apenas um caso de reescrevendo a parte isecurável.

Esperamos ser capazes de decorar um campo com uma permissão e ignorar silenciosamente qualquer gravação para se o usuário não tivesse permissão.Nós também estávamos pulando que, se eles lerem, poderíamos trocar em outro valor, e.Leia o salário e volte 0 se você não tiver uma reivindicação Readsalary.

Esses tipos padrão de coisas que eu nunca fiz nenhum AOP sério.Então só queria uma confirmação rápida antes de mencionar isso como uma opção.

Foi útil?

Solução

Sim, é possível usar o Postsharp neste caso e deve ser muito fácil converter o exemplo do RBAC para reivindicações.

Uma coisa que precisa ser considerada é o desempenho.Quando campos decorados são acessados com freqüência durante o processamento de um caso de uso (por exemplo, são lidos dentro de um loop), então muito tempo é desperdiçado em verificações de segurança redundantes.Decorar um método que represente o caso de uso do usuário final seria mais apropriado.

Eu teria medo de trocar silenciosamente os valores dos campos quando o usuário tiver permissão insuficiente.Pode levar a alguns resultados muito surpreendentes quando um algoritmo é alimentado por dados não esperados artificiais.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top