2013-12-18 1 views
2

Windows 인증을 사용하여 호스팅 된 ASP.Net 응용 프로그램을 작성 중이며 다양한 개인 설정 작업을 위해 사용자 이름을 얻어야합니다. 호스트 시스템의 디렉토리는 Windows 인증을하도록 설정하고 web.config 파일은 가지고있다 : - 그것의Hosted ASP.Net 응용 프로그램에서 구별 할 수없는 사용자

<authentication mode="Windows"> 
</authentication> 

. 다른 사람의 사이에서, 답변 here, here

Source               Result 
System.Web.HttpContext.Current.Request.LogonUserIdentity.Name 'EZ\urlname_a' 
System.Environment.UserName         'NETWORK SERVICE' 
System.Web.HttpContext.Current.User.Identity.Name    '' 
this.Request.ServerVariables["LOGON_USER"]      '' 
this.Request.ServerVariables["AUTH_USER"]      '' 
this.User.Identity.Name          '' 

감사하고, here - : 나는 다음과 같은 결과를 사용자 이름을 얻을 수있는 응용 프로그램 내에서 다양한 방법을 시도했습니다. 이들 중 어느 것도 입력 된 다양한 사용자 이름을 구별하지 않습니다.

이름 (또는 이름에 대한 일부 프록시)을 얻기 위해 코드에서 시도 할 수있는 다른 것이 있습니까? 내가 web.config에서 확인할 수있는 것이 있습니까? 또는 호스트와 문제를 해결해야한다면, 내가 물을 수있는 지능적인 질문이 있습니까?

편집 호스트의 IIS 대화 상자를 사용하여 응용 프로그램 디렉토리와.

+0

IIS를 사용하여 호스팅 하시겠습니까? – Amber

+0

@Amber, 네, 그렇게 믿습니다. –

+0

IIS 관리자에서만 Windows 인증을 사용할 수 있는지 확인해야합니다. 현재 (아마도) 응용 프로그램 풀 설정 인 'NETWORK SERVICE'를 사용하고 있기 때문입니다. – Amber

답변

1

Windows 인증 만 사용하도록 IIS를 설정 한 다음 Page.User.Identity.Name 또는 유사 항목을 사용하여 Windows 사용자 이름을 가져와야합니다.

인증 창에서 Windows 인증을 사용 가능으로 설정하고 익명 인증을 사용 불가능으로 설정하십시오.

관련 문제