이 프로젝트를 상속 받았으며 약 20 개의 폼, 수백 개의 컨트롤 및 수만 줄의 코드가 있습니다. 나는 잠시 동안 일해 왔고, 이제는 상사가 사용자 계정 추가를 요청하고 있습니다.Windows 폼에 사용자 계정을 추가하는 데 필요한 조언
기본적으로 User
, Supervisor
및 Administrator
과 같은 다른 레벨이 있습니다. 응용 프로그램을 시작하면 로그인해야하며 일종의 데이터베이스에 대한 로그인 자격 증명을 확인하고 보유한 사용 권한의 종류를 결정합니다.
User
버튼을 제외한 모든 컨트롤은 기본 양식에서 비활성화됩니다 (이 작업을 수행하는 좋은 방법은?) Go
버튼입니다. Supervisor
을 사용하면 모든 기능이 활성화되고 사용자 계정을 만들 수 있습니다 (일부 양식에만 해당). Administrator
은 Supervisor
과 동일하지만 사용자 계정을 백업 할 수도 있습니다.
내 문제는 이것을 구현하는 방법을 정확히 모르겠습니다. 프로그램이 인터넷 연결없이 사용 가능해야하므로 온라인 서비스 나 데이터베이스를 쿼리 할 수 없습니다. 컴퓨터에 외부 파일이있는 문제는 누군가 편집하거나 삭제할 수 있다는 것입니다.
내 아이디어는 응용 프로그램의 Settings
클래스에 사용자 계정을 저장하는 것이지만 외부 구성 파일도 저장합니다. 나는 그것이 실행 파일에 저장 될 수 있어야하지만 저장되고 파일로 임포트 될 필요가 있다고 생각한다.
분명히 암호는이 파일에서도 해시되어야합니다. 누구든지 사용하기 쉽고 사용하기 쉬운 클래스를 알고 있습니까 (이 응용 프로그램은 상업적으로 판매 될 것이므로 사용 제한이 없음). 사용자 이름도 해싱해야합니까? 왜냐하면 누군가가 파일을 보류하면 암호를 추측하기 쉽도록하기 때문에 모든 사용자 이름을 알 수 없기 때문입니다.
인증을 위해 클라이언트를 신뢰할 수 없습니다. 중요한 데이터입니다. 응용 프로그램에 어떤 컨트롤을 넣든 관계없이 데이터를 직접 읽고 쓸 수 있으면 쓸모가 없습니다. 나의 첫 번째 공격은 구성에 관리자의 해시로서 해시 비밀번호를 붙여 넣는 것입니다. 이제 관리자 액세스 권한이 있습니다. – ixe013