Robię projekt w WPF. Mam wymóg uwierzytelnienia użytkownika i zapewnienia dostępu do modułów na podstawie roli. Czy mam lepszy sposób osiągnięcia tego w WPF.Uwierzytelnianie i role w WPF
Odpowiedz
Będzie to częściowo zależało od tego, jak bezpieczny będzie potrzebny kod.
We wszystkich przypadkach użycia należy użyć wzorca Model widoku-ViewModel. W każdym ViewModelu, być może najlepiej umieszczonym w klasie bazowej dla wszystkich twoich klas ViewModel, dołącz zmienną stanową, która zwraca ciąg i podnosi zdarzenie PropertyChanged za każdym razem, gdy zmienia się stan zabezpieczeń.
Podstawa prezentacji dla każdego widoku klasy na wartość tego łańcucha, po wzór podobny do przyjętego odpowiedzi na to SO pytanie:
https://stackoverflow.com/questions/3868164/
Odpowiedź opisuje jak to zrobić z wartości logicznych , ale możesz użyć dowolnej wartości ciągu innego niż "True" lub "False", jeśli twoja zmienna stanu ViewModel potrzebuje więcej niż dwóch stanów.
Cały kod .NET, w tym WPF, można w prosty sposób odwrócić. Jeśli twój kod musi być bardziej bezpieczny, to znaczy, jeśli twój przypadek użycia zakłada, że twoi użytkownicy zhackują twój program WPF, będziesz chciał zaciemnić i/lub zaszyfrować znaczną część kodu ViewModel, używając dostępnych na rynku produktów takich jak InishTech SLPS lub Dotfuscator lub cokolwiek innego.
Alternatywnie można użyć tego samego wzorca MVVM i napisać aplikację Silverlight, ale nie jestem pewien, czy użytkownik Silverlight ma dostęp do plików binarnych w taki sam sposób, w jaki robiłby to użytkownik pulpitu WPF.
- 1. Uwierzytelnianie formularzy ASP.NET MVC + Autoryzacja atrybutu + proste role
- 2. Uprawnienia Role i uprawnienia
- 3. Uwierzytelnianie i uwierzytelnianie Vaadin
- 4. Nominalne role i rodziny danych
- 5. Nazwy nasion i użytkowników, role?
- 6. Magento: otrzymuj role i użytkowników
- 7. Uwierzytelnianie ASP .NET wobec Active Directory i role za pośrednictwem dostawcy roli ASP.NET
- 8. Role dostępne z uwierzytelnianiem Windows
- 9. Role Singleton w Moose
- 10. Pomost - JAAS i Active Directory - tylko uwierzytelnianie?
- 11. Java EE 6 grup, użytkowników i role -vs- Shiro role, użytkowników i uprawnienia
- 12. Modele i role w Qt5 i Qt 4.8
- 13. Jak działają role i uprawnienia zabezpieczeń CloudKit?
- 14. Hybrydowe uwierzytelnianie Windows i uwierzytelnianie formularzy w ASP.NET MVC 4
- 15. CouchApps i uwierzytelnianie użytkownika
- 16. Swift NSURLSession i uwierzytelnianie
- 17. Uwierzytelnianie WebServiceHostFactory i IIS
- 18. Uwierzytelnianie Siteminder i Android
- 19. Uwierzytelnianie NancyFx i Windows
- 20. Uwierzytelnianie WCF i Kerberos
- 21. Zabezpieczenia ASP.NET MVC4, uwierzytelnianie i autoryzacja
- 22. Role używające JWT
- 23. Sitecore - standardowe role użytkowników
- 24. FormsAuthentication Role bez członkostwa
- 25. Jak Role i Cechy różnią się w Moose?
- 26. Dlaczego PostgreSQL scala użytkowników i grupy w role?
- 27. Jak dodać użytkowników i role w SQL dla SQLMembershipProvider?
- 28. uwierzytelnianie OAuth 2.0 (google api) z aplikacji komputerowej WPF?
- 29. Uwierzytelnianie w jQuery Mobile i PhoneGap
- 30. Uwierzytelnianie NTLM i karty inteligentne
Po prostu chcę przełączyć widoczność niektórych opcji w interfejsie użytkownika. – Novice
Następnie powinieneś być w porządku z podejściem niemal identycznym z podejściem w połączonym pytaniu: zdefiniujesz styl dla każdego stanu przeglądania i zastosujesz styl z DataTriggerem powiązanym z boolean ViewModel, być może o nazwie "Uwierzytelniony". Możesz umieścić aktualny kod weryfikacyjny w pobierającym ViewModel dla tej "Uwierzytelnionej" właściwości. –