Sto creando un'applicazione asp.net mvc web api e non sono sicuro di come fare la roba di iscrizione.Fornitore/membro del ruolo? Come in asp.net web api?
Nel mio progetto attuale ho questo
mia Users Table
e Role Table
non sto usando l'appartenenza asp.net in quanto porta troppo bagaglio e non si adatta come voglio progettare il mio database (sicuro che posso per ma sembra proprio come a molto lavoro)
un user
può avere molti ruoli e un role
può avere molti utenti.
Sto utilizzando EF per eseguire quasi tutte le mie chiamate al database.
Nei progetti passati ho creato il mio Authorize Attribute
cosa ha fatto la mia chiamata al mio database e controllato per vedere se l'utente aveva il ruolo corretto di ciò che era permesso su quel controller/metodo di azione.
Non facendo alcun abbonamento, ho perso alcune delle funzioni integrate come User.IsInRole
. Ero ancora in grado di usare User.Identity.Name
ma penso che fosse a causa del cookie che ho impostato.
Qual è il modo migliore per farlo ora in asp.net mvc 4/web api?
Mentre su google ho trovato "SimpleMembership" ma non ho ancora letto molto.
Su una nota a margine posso usare User.Identity.Name
con my webapi se ho autenticato un utente?
Che ne dici di User.Identity.Name come viene impostato su asp.net webapi? In una precedente app mvc 3 avevo nel mio attributo authorize personalizzato questo: httpContext.User.Identity.Name e poi ho usato il mio livello di servizio con quel nome per scoprire quali permessi aveva quell'utente. Posso usare httpContext.User.Identity.Name come pensavo fosse impostato dal cookie? – chobo2
Sì, è possibile avere un attributo di autorizzazione personalizzato e impostare 'Thread.CurrentPrincipal' sull'utente corrispondente. Dai un'occhiata a un'implementazione di esempio che ho scritto utilizzando un provider di appartenenza con l'autenticazione di base: http://stackoverflow.com/a/11536349/29407 In questo esempio ho utilizzato un gestore delegato personalizzato ma potresti utilizzare un filtro di autorizzazione se voglio pure. –
Cool che è molto utile. Ho qualche domanda però. Perché asincrono? Perché devi registrare il gestore (non l'ho fatto e User.Identity è pieno ma non l'ho fatto asincrono), Perché riempire i ruoli in quanto non sono sicuro di come accedervi. – chobo2