es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ASP.NET Web Forms: la función “Cuentas Individuales” no redirige a la página de inicio de sesión para usuarios no conectados.

Busqué en todas partes mi situación específica y no la encuentro en ningún lado.

Soy nuevo en ASP.NET y recientemente creé un proyecto de ASP.NET Web Forms con Cuentas Individuales HABILITADAS.

Sé que si esta opción está seleccionada, se utiliza ASP.Net Identity, pero no encuentro en ninguna parte cómo hacer para que solo las cuentas registradas puedan acceder al sitio web, específicamente con Web Forms seleccionados al crear el proyecto.

Solo quiero que las cuentas no registradas sean redirigidas de nuevo a la página de inicio de sesión.

No sé a dónde más acudir y si alguno de ustedes puede ayudar a un novato como yo, estaría agradecido. ¡Gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    ¡Hola!

    No te preocupes, este es en realidad un requisito muy común para las aplicaciones web. Para lograr esto, deberás usar lo que se llama “Filtros de Autenticación” en ASP.NET; esto es una funcionalidad proporcionada por el marco de trabajo ASP.NET Identity que te permite especificar un filtro que se aplicará a todas las peticiones que reciba tu aplicación, y solo permitirá el acceso a aquellas peticiones que provengan de usuarios autenticados.

    Para crear un filtro de autenticación, puedes seguir estos pasos:

    1. Crea una nueva clase que herede de ActionFilterAttribute:
    public class AuthenticateAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
            {
                filterContext.Result = new RedirectResult("~/Account/Login");
            }
        }
    }
    
    1. En el método OnActionExecuting, comprueba si el usuario está autenticado. Si no lo está, estableces el resultado del contexto del filtro como un RedirectResult, que los redireccionará a la página de inicio de sesión. Observa el carácter “~” en la URL; esta es una sintaxis especial que le indica a ASP.NET que genere la URL con la ruta raíz correcta (por ejemplo, si tu aplicación se encuentra alojada en “http://localhost/miapp/”, la URL resultante será “http://localhost/miapp/Account/Login”).
    2. Agrega el atributo [Authenticate] a todas las acciones del controlador que solo deben ser accesibles para usuarios autenticados:

    [Authenticate]
    public ActionResult MiAccionProtegida()
    {
        // Código aquí que solo debe ser accesible para usuarios autenticados...
    }
    

    ¡Eso es todo! Con estos simples pasos, deberías poder proteger tu aplicación de formularios web y permitir el acceso solo a usuarios autenticados.

    ¡Espero que esto te ayude! Si tienes más preguntas, no dudes en preguntar.

Comments are closed.