Abbiamo implementato Google OAuth2, e crea gli utenti nella tabella ASPNetUsers. Questo funziona bene, e possiamo vedere l'utente autenticato tramite User.Identity.GetUserName().Aggiungi ruoli o domande a utente creato tramite Google OAuth2
Se aggiungiamo a questo utente di un ruolo, dicono "MyCustomRole", via AspNetRoles e tavolo AspNetUserRoles, qualsiasi metodo fissato con:
[Authorize(Roles="MyCustomRole")]
non è possibile accedere. L'applicazione inoltra l'utente autenticato al controller Login.
Qual è il meccanismo adeguato per l'aggiunta di questi utenti esternamente autenticati ruoli, i ruoli aventi tali accessibile per la [Autorizzazione (Roles = "")] attributo?
Si scopre che stavo utilizzando l'ID anziché il nome, nel filtro. Così, invece di [Autorizza (ruoli = "MY_ROLE_ID")], aveva bisogno di essere semplicemente [Autorizza (ruoli = "MyRole")]. E 'bello, e abbastanza semplice, per essere in grado di aggiungere i ruoli agli utenti autenticati da sistemi esterni via OAuth2, semplicemente aggiungendo la riga da AspNetUserRoles come si farebbe con qualsiasi altro tipo di utente. –