Sto facendo un progetto in WPF. Ho avuto l'obbligo di autenticare un utente e fornire accessibilità per i moduli in base al ruolo. Ho un modo migliore per ottenere questo in WPF.Autenticazione e ruoli in WPF
risposta
Dipenderà in parte da quanto è sicuro che il codice sia necessario.
Per tutti i casi di utilizzo, tuttavia, utilizzare un modello Model-View-ViewModel. In ogni ViewModel, forse nella migliore posizione in una classe base per tutte le classi ViewModel, include una variabile di stato che restituisce una stringa e solleva l'evento PropertyChanged ogni volta che cambia lo stato della sicurezza.
Base la presentazione per ciascuna classe View sul valore della stringa, seguendo uno schema simile a quello risposta accettata a questa domanda SO:
https://stackoverflow.com/questions/3868164/
La risposta descrive come fare questo con i valori booleani , ma puoi usare qualsiasi valore di stringa diverso da "True" o "False" se la tua variabile di stato ViewModel ha bisogno di più di due stati.
Tutti i codici .NET, incluso WPF, possono essere facilmente decodificati. Se il tuo codice deve essere più sicuro di quello, cioè se il tuo caso d'uso presuppone che i tuoi utenti modifichino il tuo programma WPF, allora vorrai offuscare e/o crittografare gran parte del codice ViewModel, usando prodotti disponibili in commercio come InishTech SLPS o Dotfuscator o qualsiasi altra cosa.
In alternativa, è possibile utilizzare lo stesso pattern MVVM e scrivere un'applicazione Silverlight, ma non sono sicuro che un utente Silverlight abbia accesso ai file binari come farebbe un utente WPF desktop.
Voglio solo attivare la visibilità di determinate opzioni nell'interfaccia utente. – Novice
Quindi si dovrebbe andare bene con un approccio quasi identico a quello nella domanda collegata: definirai uno stile per ogni stato di visualizzazione e applicherai lo stile con un DataTrigger associato al booleano ViewModel, forse chiamato "Autenticato". È possibile inserire il codice di verifica effettivo nel getter ViewModel per quella proprietà "Autenticata". –