Este proyecto en el que estoy trabajando me exige mantener un DB local de usuarios administradores y utilizar un DB externo para usuarios regulares. A cualquier persona que apruebe la autenticación en el db del administrador se le debe asignar el rol 'admin', y a cualquier persona autenticada a través del otro db siempre se le asignará un rol de 'usuario'.¿Cómo configuro manualmente el rol de un usuario en ASP.NET MVC?
¿Puedo asignar manualmente estos roles? No necesito la complejidad de un proveedor de funciones ni nada, ya que solo estoy usando estos dos roles, que SIEMPRE se basarán en el db con el que se autentiquen.
Sería una GRAN ayuda si pudieras proporcionar un código de muestra o un enlace a cierta documentación. ¡Gracias!
EDIT:
Actualmente no estoy utilizando el proveedor de funciones y la creación de uno parece como una molestia. Sé que no es la 'mejor práctica', pero solo necesito asignar 1 de 2 roles durante el inicio de sesión (esto nunca cambiará). Tampoco tiene sentido almacenar información de roles en la base de datos, ya que los usuarios ya están separados en 2 dbs por su función.
He aquí algunos pseudo-código:
if (AdminDB.ValidateUser(username,password)==true) {
SetAuthCookie(username);
AssociateUserWithRole(username, 'admin');
} elseif (UserDB.ValidateUser(username,password)==true) {
SetAuthCookie(username);
AssociateUserWithRole(username, 'user');
} else {
// Login failed.
}
Su parte 'ThisSession.AssociateUserWithRole' no sé. Básicamente, uno de los usuarios está autenticado. Necesito decirle a .NET a qué función pertenece el usuario.
El CustomizeAttribute personalizado tiene más sentido para mí (un novato .NET MVC de PHP-land). ¡¡Gracias por la ayuda!! –
¿Es tu media el uso de 'Session' como esta ?: en login->' Session.Add ("LoggedInRole", "admin"); 'y cuando necesito el tipo de usuario actual, léelo de' Session'. ¿'Sesión' es lo suficientemente segura para guardar el tipo de usuario (función) en ella? –
@MajidR 'Session' es típicamente todo del lado del servidor por lo que no es menos seguro que el proveedor de roles, desde una perspectiva de intrusión. Obviamente, usted debe codificar toda la lógica usted mismo, así que, desde una perspectiva de robustez, dependerá. Probablemente iría a la ruta 'RoleProvider'. – tvanfosson