tengo un método llamado controlador Edit
en el que el usuario puede editar los datos que habían creado como tal ...ASP.NET MVC atributo sólo para permitir al usuario editar su/su propio contenido
public ActionResult Edit(int id)
{
Submission submission = unit.SubmissionRepository.GetByID(id);
User user = unit.UserRepository.GetByUsername(User.Identity.Name);
//Make sure the submission belongs to the user
if (submission.UserID != user.UserID)
{
throw new SecurityException("Unauthorized access!");
}
//Carry out method
}
Este método funciona bien, sin embargo, es un poco desordenado para poner en cada método de edición del controlador. Cada tabla siempre tiene un UserID
por lo que me preguntaba si había una manera más fácil de automatizar esto a través de un atributo [Authorize]
o algún otro mecanismo para hacer el código más limpio.
Gracias! Voy a hacer esto más genérico. Al igual que have submission implementar una interfaz llamada IUserOwnable que tiene un UserID. Y luego pasar el repositorio al Atributo donde obtiene un IUserOwnable y comparar ese ID de usuario del usuario con el ID de usuario de IUserOwnable –
Claro, esto podría hacerse tan genérico como desee para satisfacer sus requisitos específicos. –
Buen enfoque. Estaba saltando que ahora tendrá un atributo incorporado en ese –