Request.ServerVariables("LOGON_USER")는 ASP.NET 빈 문자열을 반환합니다.
이 문서에서는 변수가 ASP.NET 빈 문자열을 Request.ServerVariables("LOGON_USER")
반환하는 문제에 대한 해결을 제공합니다.
원래 제품 버전: ASP.NET
원본 KB 번호: 306359
증상
ASP.NET 변수에 Request.ServerVariables("LOGON_USER")
액세스하려고 하면 빈 문자열이 반환됩니다.
Microsoft Visual C# .NET을 사용하는 경우 다음 구문이 이 변수에 액세스합니다.
Request.ServerVariables["LOGON_USER"]
원인
이 문제는 익명 액세스 보안을 사용하여 .aspx 페이지에 액세스하는 경우 컬렉션의 ServerVariables
인증 관련 변수가 채워지지 않기 때문에 발생합니다. 이 문제는 web.config 파일의 섹션에서 익명 사용자에게 액세스 권한을 <authorization>
부여하는 경우에도 발생할 수 있습니다.
해결 방법
이외의 인증 모드를 LOGON_USER
사용할 때 변수를 채우기 위해 web.config 파일의 섹션에서 익명 사용자에 <authorization>
대한 액세스를 거부할 수 있습니다.None
섹션에서 익명 사용자에 <authorization>
대한 액세스를 거부하려면 다음 단계를 수행합니다.
web.config 파일의 인증 모드를 이외의
None
항목으로 변경합니다. 예를 들어 web.config 파일의 다음 항목은 인증 모드를 Forms 기반 인증으로 설정합니다.<authentication mode="Forms" />
web.config 파일에서 익명 사용자에 대한 액세스를 거부하려면 다음 구문을 사용합니다.
<authorization> <deny users = "?" /> <!-- This denies access to the anonymous user --> <allow users ="*" /> <!-- This allows access to all users --> </authorization>
Windows 인증 사용하는 경우 다음 단계를 사용하여 이 문제를 resolve 수 있습니다.
web.config 파일의 인증 모드를
Windows
다음과 같이 변경합니다.<authentication mode="Windows" />
Internet Services Manager에서 .aspx 파일 또는 웹 프로젝트 폴더를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다.
웹 프로젝트 폴더에 대한 속성을 선택하는 경우 디렉터리 보안 탭을 선택합니다. .aspx 파일에 대한 속성을 선택하는 경우 파일 보안 탭을 선택합니다.
익명 액세스 및 인증 제어에서 편집을 선택합니다.
인증 방법 대화 상자에서 익명 액세스 검사 상자의 선택을 취소한 다음 기본, 다이제스트 또는 통합(NT 챌린지/응답) 검사 상자를 선택합니다.
확인을 선택하여 두 대화 상자를 모두 닫습니다.
상태
이것은 의도적으로 설계된 동작입니다.
추가 정보
ASP.NET .config 파일에서 구성할 수 있는 새로운 인증 모드 및 권한 부여 체계를 제공합니다. 이러한 이유로 IIS에서만 인증 모드를 수정해도 항상 원하는 결과가 생성되는 것은 아닙니다. 따라서 .config 파일의 보안 설정도 고려해야 합니다.
참고
Windows 인증 함께 익명 인증을 사용하도록 설정하거나 이외의 인증 모드None
를 사용하는 동안 섹션에서 익명 사용자에 <authorization>
대한 액세스 권한을 부여하는 경우 및 REMOTE_USER
같은 AUTH_USER
다른 서버 변수(및 HttpContext.Current.User.Identity.Name
속성)도 빈 문자열을 반환합니다. 위에서 언급한 해결 방법을 사용하여 이러한 변수를 채울 수 있습니다.
ASP.NET 개체의 Request
속성을 사용하여 IsAuthenticated
익명 액세스 보안이 사용되고 있는지 여부를 확인할 수도 있습니다. IsAuthenticated
익명 액세스가 켜져 있으면 false를 반환하고 , , Passport
Integrated (NT Challenge/Response)
또는 Basic
와 같은 Forms
다른 인증 수단을 사용하는 경우 true를 반환합니다.
참조
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기