Rodrigo,
Só agora percebi o que você quer fazer....
Você possui esses papéis cadastrados em algum lugar, certo?
Eu havia pensado em algo do tipo:
public class InserirServicoAuthorizeAttribute : AuthorizeAttribute{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{ if (httpContext.User.Identity.IsAuthenticated) {
// Busca do banco de dados a Role do usuário para aquela
empresa. Ex: string funcaoDoUsuario = (from x in
context.FuncaoEmpresaUsuario
where x.EmpresaId == xxx && x.Username ==
httpContext.User.Identity.Name
select x.NomeDaFuncao).First(); if (funcaoDoUsuario ==
"Administrador" || funcaoDoUsuario == "Vendedor") {
return true; } } return false;
}}
Assim, você poderia decorar a sua Action usando a classe acima:
[InserirServicoAuthorize()] public ViewResult
MinhaAction() { // ... }
Att,
Robson Ramos
On 28 dez, 11:47, Rodrigo Braga <
rbr...@gmail.com> wrote:
> Eu havia imaginado isso, mas mesmo assim acho que ficará "limitado" ao
> contexto web apenas.
>
> Eu tenho minhas dúvidas se realmente vão querer portar isso pra outras
> interfaces, mas partindo do principio que de fato vão; em uma interface
> Mobile ou Console (por exemplo, claro) eu importaria a camada de domínio
> apenas e perderia isso, afinal a regra continuaria no controller.
>
> De qualquer maneira, decorando dessa forma é bem melhor do que como está
> agora (festival de condicionais replicados e vários lugares).
>
> 2011/12/28 Robson Ramos <
robsonramosab...@gmail.com>