Recorte de seguridad de enlace en asp.net mvc
-
11-07-2019 - |
Pregunta
Me gustaría mostrar algunos enlaces solo a usuarios autenticados en una aplicación web asp.net mvc.
- Uso la plantilla para una aplicación web asp.net mvc en Visual Studio 2008 que vino con la versión beta de asp.net mvc.
- Uso autenticación de formularios.
- Me gustaría agregar algo como lo siguiente a una vista existente:
<a href="/Account/ChangePassword">Change password</a>
y solo muestra el enlace a los usuarios que han iniciado sesión.
¿Cuál es la forma más sencilla de hacer eso? Me gustaría algo tan simple como el recorte de seguridad del mapa web.sitemap que he probado con los formularios web asp.net. (¿Se puede usar con mvc? ¿O es solo para formularios web?)
Solución
Lo siguiente debería funcionar. También deberá hacer algo similar en la acción del controlador para esto en caso de que el usuario ingrese la URL a mano en su navegador. O, como usted dice, podría restringir el acceso a la acción en web.config.
<% if (HttpContext.Current.Request.IsAuthenticated) { %>
<a href="/Account/ChangePassword">Change password</a>
<% } %>
Otros consejos
Puede crear un SiteMapProvider personalizado como este:
Creación de un proveedor de mapa de sitio ASP.NET MVC con recorte de seguridad
mostrar enlace de cambio de contraseña
mostrar enlace de inicio de sesión
Puede simplemente hacerlo:
Cambiar contraseña