현재 ASP.Net Web Forms를 사용하여 내부 웹 응용 프로그램을 작성 중이며 이상한 문제가 있습니다. 나는 현재 로그인 한 Windows 사용자를 가장 할 수 있어야하고 Windows 인증을 기반으로하는 명령을 실행하여 로그인해야합니다. 그리고 ... 사용해야하는 응용 프로그램에서 Windows 인증을 설정하지 않은 경우 로그인하면 사용자 이름과 암호를 받아 들일 수 있어야합니다. 또한 .NET 4.0에서 응용 프로그램을 작성하고 가능한 많이 확보해야합니다. web.config에서 Windows 인증 또는 폼 인증을 사용하지 않고 작업하는 대신이 세션 변수를 설정하여 사용자가 로그인 한 웹 응용 프로그램의 페이지에 액세스하지 못하도록합니다. 이상한 이름의 세션 변수를 작성하여이 작업을 수행했습니다. 사용자 이름 (windows auth 또는 not)을 기반으로 한 값과 비밀 세션 변수. 비밀 변수는 256 비트 암호화 된 문자열로 web.config에 있으며, 여기서 암호를 해독하고 세션 비밀로 설정합니다. 페이지를로드하려면 첫 번째 세션 변수를 비워 둘 수 없으며 두 번째 변수는 해독 된 키 값과 같아야합니다. 변수가 검사를 통과하지 못하면 두 번째 변수는 로그인 페이지로 리디렉션됩니다. 웹 응용 프로그램의 모든 페이지, 제네릭 처리기 및 webservice 메서드에서이를 설정합니다. 몇 분 동안 아무런 활동이 없으면 세션 시간 제한을 설정하고 로그 아웃하면 모든 세션 변수를 아무 것도 설정하지 않고 모든 쿠키를 만료시킵니다. (나는 또한 모든 캐시를 비활성화합니다).양식 인증이 완전히 필요합니까?
내 질문은 ... 이것은 폼 인증과 비교할 수있는 보안을 제공합니까? 항상 양식 인증을 사용했지만 여기서는 사용할 수 없습니다. 그렇게했다면 사용자는 IIS의 설정을 재구성해야하고 web.config를 사용하여 로그인 절차를 전환해야합니다 (본인의 지식으로는 양식 인증과 Windows 인증을 모두 사용하여 페이지 및 기타 웹 보안을 관리 할 수는 없습니다) 자원). 위에서 설명한 방법을 사용하면 두 가지 장점을 모두 얻을 수 있지만 내 방법의 보안에 대해 궁금합니다. 양식 인증을 사용하는 것과 다른 최상의 보안을 보장하기 위해 여기서 구현할 수있는 것이 있습니까? 폼 인증을 사용하지 않고 동일한 수준의 보안을 수행 할 수 있습니까?
미리 감사드립니다.
와우, 몇 년 후 ... 나는이 질문을 바보 생각합니다. 물론 필자가 설명한 것은 Forms Authentication #facepalm과 비교됩니다. 필자는 Kerberos와 Forms Auth 및 맞춤 멤버쉽 공급자를 사용하여 작업을 완료했습니다. – wakurth