Estoy creando un proveedor función personalizada y estableció un Autorizar atributo que especifica un papel en mi controlador y que está funcionando muy bien, como esto:ASP.NET MVC redirigir a una página de acceso denegado el uso de una función personalizada proveedor de
[Authorize(Roles="SuperAdmin")]
public class SuperAdminController : Controller
...
Pero cuando un usuario no tiene acceso a este controlador, se le redirige a la página de inicio de sesión. ¿Cómo puedo redirigirlo a una página "AcessDenied.aspx"?
Si el usuario inicia sesión e intenta acceder a la página, será redirigido a la página AccessDenied. Bueno. Pero, si el usuario no está conectado, será redireccionado a la página AccessDenied. Malo.En esa situación, deberían ser redirigidos a la página de inicio de sesión. –
Si desea que la página se redirija normalmente en el caso de que el usuario ya no esté, después de la llamada al método base.OnAuthorization(), agregue una instrucción if alrededor del resto del código que comprueba si Threading.Thread.CurrentPrincipal. Identity.IsAuthenticated. De esta forma, se redirige al usuario a la página AccessDenied a menos que el usuario no esté autenticado ... en cuyo caso se realizará la acción predeterminada (redirigir a la página de inicio de sesión) – Frinavale
¿dónde se pone esta clase? en el controlador? – Jay