A secure password management application built with C# and Entity Framework, demonstrating modern software architecture and security best practices.
- Role-based access control (User, Administrator, IT Specialist)
- Secure password hashing
- Two-factor authentication (2FA) using authenticator apps
- Account lockout after failed login attempts
- Session management
- IP-based security monitoring
- Secure storage of website credentials
- Password grouping functionality
- Strong password generation
- Password expiration tracking
- Password strength assessment
- Secure clipboard handling for credentials
- AES-256 encryption for stored passwords
- Password policy enforcement
- Login attempt monitoring
- IP blacklisting
- Security alerts and monitoring
- Audit logging
- Automated security responses
- User account management
- Security policy configuration
- System activity monitoring
- Security incident management
- Security metrics dashboard
- Login attempt analysis
- IP blocking management
- Security alert handling
- Framework: .NET Framework 4.8
- Architecture: MVVM (Model-View-ViewModel)
- Database: Microsoft SQL Server
- ORM: Entity Framework 6
- UI: WPF (Windows Presentation Foundation)
- Encryption: Azure Key Vault for key management
- 2FA: Time-based One-Time Password (TOTP)
The solution is divided into three main projects:
-
PasswordManager.Core
- Core business logic
- Service interfaces
- Models
- MVVM base classes
-
PasswordManager.Data
- Entity Framework context
- Database models
- Repository implementations
- Data access logic
-
PasswordManager.App
- WPF application
- Views and ViewModels
- UI resources
- User interface logic
- Strong password enforcement
- Regular password expiration
- Password strength assessment
- Secure password generation
- Encrypted storage
- Role-based permissions
- Two-factor authentication
- Account lockout
- Session management
- IP-based security
- Failed login tracking
- Security incident logging
- User activity auditing
- Real-time security alerts
- Clone the repository
- Open the solution in Visual Studio 2022
- Update the connection string in
App.config
- Run the SQL script in
PasswordManagerEF.sql
to create the database - Configure Azure Key Vault credentials in
App.config
(or use local encryption key) - Build and run the application
Administrator:
Username: admin
Password: admin123
IT Specialist:
Username: it
Password: admin123
User:
Username: user
Password: admin123
- Visual Studio 2022
- SQL Server Management Studio 2020
- .NET Framework 4.8 SDK
- SQL Server LocalDB or higher
This project is licensed under the MIT License - see the LICENSE file for details
This is an educational project demonstrating various software development concepts. Feel free to fork and modify for your own learning purposes.
- Built as an educational project to demonstrate:
- MVVM architecture
- Entity Framework implementation
- Security best practices
- WPF development
- Role-based access control