Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowMultiple = true)]
- public class MeuAuthorize : AuthorizeAttribute
- {
- private String[] _permissoes;
- private MeuProjetoContext contexto = new MeuProjetoContext();
- public CustomAuthorizeAttribute(params String[] permissoes)
- {
- _permissoes = permissoes;
- }
- protected override bool AuthorizeCore(HttpContextBase httpContext)
- {
- var baseReturn = base.AuthorizeCore(httpContext);
- var permissoesReturn = false;
- var permissoesUsuario = contexto.Permissoes.Where(p => p.Usuario.Nome == httpContext.User.Identity.Name).Select(p => NomePermissao).ToList();
- permissoesReturn = permissoesUsuario.Intersect(_permissoes.OfType<String>().ToList()).Any();
- return permissionsReturn || baseReturn;
- }
- }
- [MeuAuthorize("Usuário", "Gerente", "Administrador")]
- public ActionResult MinhaAction() { ... }
- [MeuAuthorize]
- public ActionResult MinhaAction() { ... }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement