2012-11-07 3 views
2

aspx 페이지에서 windows 사용자 이름을 얻으려고합니다.windows 사용자 이름을 얻는 방법

나는 다음과 같은 시도 :

<% System.Threading.Thread.CurrentPrincipal = new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()) %> 
<%= System.Threading.Thread.CurrentPrincipal.Identity.Name %> 

을하지만 않는 모든 것을 나에게 를 줄입니다 IIS AppPool을/SBalance - 윈도우 사용자 이름이 아닙니다!

나는 다음과 같은 서버 컨트롤 추가 그러나 경우 :

<asp:LoginName ID="LoginName1" runat="server" /> 

이 성공적으로 내 도메인 및 사용자 이름을 미리 채울 않습니다를.

그렇다면 로그인 컨트롤을 사용하지 않고 aspx 페이지에서 도메인/사용자 이름을 문자열로 가져올 수 있습니까?

감사

+0

IIS APPPOOL/SBalance **는 ** Windows 사용자 이름입니다 ... IIS에서 응용 프로그램이 실행되는 응용 프로그램 풀과 동일한 이름으로 자동 생성됩니다. 나는 현재 사용자 이름에 로그인 된 asp.net을 찾고 있다고 의심합니다. 맞습니까? – spender

+0

그냥 Windows 인증을 사용하도록 설정해야하는 것처럼 보일 수 있습니다.이 설정은 'WindowsIdentity.GetCurrent (Name. – Jason

답변

3

Windows 인증을 사용하는 경우 User.Identity.Name

string windowsLogin = Page.User.Identity.Name; 
+0

')에서도 작동합니다. 웹 사이트에서 Windows 인증을 사용하는 경우에만 작동합니다. 덕분에 –

+0

. 어떤 네임 스페이스가 사용자입니까? <% = HttpContext.Current.User.Identity.Name %>가 작동하지 않습니다. – James

+0

@JeffSiver 감사합니다. 투표를 거절하면이 내용을 –

0

를 통해 사용자 이름을 얻을 수 있습니다 당신의 Web.config에서 가장을 활성화해야합니다

<identity impersonate="true" /> 

는 당신이 필요 IIS에서 Windows 가장을 활성화하고 익명 인증을 비활성화하십시오.

+0

에 추가했습니다. 이유에 대한 설명을 추가하는 것이 예의입니다. 사용자의 Windows 계정 이름을 가장하려면 가장해야합니다. –

관련 문제