Estoy usando el administrador de roles y la autenticación de Windows para mi proyecto asp.net mvc tenemos 2 roles que son visores y editores.Asp.net MVC administrador de roles
<authentication mode="Windows" />
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
<providers>
<clear />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
Editor puede acceder a toda la aplicación, pero Visor sólo se puede acceder a dos acciones
Probé primero en poner atributo Autorizar para el controlador de base que acaba de permitir editor para acceder a todo:
[Authorize(Roles = "Editors")]
public class BaseController : Controller
y a continuación, agregue el atributo Autorizar a esas dos acciones:
[Authorize(Roles = "Viewers,Editors")]
public ActionResult Report(PaymentsUnallocatedAndQueriedModel model)
no funciona, no permite al espectador acceder a ninguna acción que tenga sentido ahora.
Creo que no es una buena idea repetir el atributo Autorizar en la parte superior de cada acción.
¿Me podría decir si hay una mejor solución a ese
Gracias por su respuesta, esperaba que no se repita autorizar en la parte superior de cada acción, porque los editores pueden acceder a todos los actos, pero parece que no hay otra manera – Elham
@Elham: Siempre se puede mirar este SO pregunta e implementa un atributo deny. Esto parece mucho trabajo simplemente porque no quiere escribir un atributo para un método. http://stackoverflow.com/questions/4011458/mvc-authorize-attribute-deny –