Questo progetto su cui sto lavorando richiede di tenere un db locale degli utenti amministratori e utilizzare un db esterno per gli utenti regolari. A chiunque superi l'autenticazione nel file admin db dovrebbe essere assegnato il ruolo "admin" e a tutti gli utenti autenticati tramite l'altro db verrà sempre assegnato un ruolo "utente".Come imposto manualmente il ruolo di un utente in ASP.NET MVC?
Posso assegnare manualmente questi ruoli? Non ho bisogno della complessità di un Role Provider o altro, dal momento che sto usando solo questi due ruoli che saranno SEMPRE basati sul db con cui si autenticano.
Sarebbe un aiuto ENORME se fosse possibile fornire codice di esempio o un collegamento ad alcuni documenti. Grazie!
EDIT:
Attualmente non sto usando il provider di ruoli e creando uno sembra come una seccatura. So che non è "best practice", ma devo solo assegnare 1 dei 2 ruoli durante l'accesso (questo non cambierà mai). Inoltre, non ha senso memorizzare le informazioni sui ruoli nel database, poiché gli utenti sono già separati in 2 dbs dal loro ruolo.
Ecco alcuni pseudo-codice:
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.
}
sua parte 'ThisSession.AssociateUserWithRole' non lo so. Fondamentalmente, l'utente è autenticato, ho bisogno di dire a quale ruolo appartiene l'utente.
L'autorizzazione personalizzata AuthorizeAttribute ha più senso per me (un .NET noob MVC da PHP-land). Grazie per l'aiuto!! –
È la tua media usando 'Session' come questo ?: in login->' Session.Add ("LoggedInRole", "admin"); 'e quando ho bisogno del tipo di utente corrente, leggerlo da' Session'. 'Session' è abbastanza sicuro da salvare il tipo di utente (ruolo) in esso? –
@MajidR 'Session' è in genere tutto sul lato server, quindi non è meno sicuro del provider di ruolo, da una prospettiva di intrusione. Ovviamente dovresti codificare tutta la logica da te così, da una prospettiva di robustezza, dipenderà. Probabilmente andrò sulla rotta 'RoleProvider'. – tvanfosson