Sto cercando di capire come fare ruoli / permessi nella nostra applicazione, e mi chiedo se qualcuno sa di un buon posto per ottenere un elenco di diversi sistemi di autorizzazione basati su permessi (preferibilmente con esempi di codice) e forse un elenco di vantaggi / svantaggi per ciascun metodo.
Ho visto esempi che utilizzano semplici dizionari, attributi personalizzati, autorizzazioni basate sulle attestazioni e framework personalizzati, ma non riesco a trovare una spiegazione semplice su quando usarne uno rispetto a un altro e quali sono i pro / contro utilizzare metodo. (Sono sicuro che ci sono altri modi oltre a quelli che ho elencato ...)
Non ho mai fatto nulla di complesso con permessi / autorizzazioni prima, quindi tutto ciò mi sembra un po 'opprimente, e ho difficoltà a capire quali sono le informazioni utili che posso usare e quali no.
Quello che so è che questo è per un ambiente Windows utilizzando C # / WPF e WCF servizi. Alcuni controlli delle autorizzazioni vengono eseguiti sul servizio WCF e alcuni sul client. Alcune sono regole aziendali, alcune sono controlli di autorizzazione e altre sono relative all'interfaccia utente (come le forme che un utente può vedere). Possono essere molto generici come valori booleani o numerici oppure possono essere più complessi come un intervallo di valori o un elenco di elementi del database da verificare / deselezionare.
Le autorizzazioni possono essere impostate a livello di gruppo, a livello di utente, a livello di filiale o a livello personalizzato, quindi non voglio utilizzare l'autorizzazione basata sui ruoli. Gli utenti possono trovarsi in più gruppi e gli utenti con l'autorizzazione appropriata sono incaricati di creare / mantenere questi gruppi. Non è raro che vengano creati nuovi gruppi, quindi non possono essere hardcoded.