2011-10-20 4 views
9

사이트를 만들었습니다. 내부 사이트입니다. .NET 4.0 사이트입니다. 사이트를 탐색하는 사람의 HttpContext.Current.User.Identity.Name을 사용하여 사용자 이름을 얻고 싶습니다. 그것이 내부이므로 로그인 페이지가 없습니다. 나는 내가 무엇을 놓치고 있는지 확신하지 못한다.HttpContext.Current.User.Identity.Name이 비어있는 이유는 무엇입니까

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

부분이 경우 필요 최소한

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 

+0

당신은 어떤 종류의 인증을 강요하지 않으면 익명으로 남기를 원하는 사용자 로그인 이름을 얻지 못합니다. –

답변

14

. 또한 수행하여이 문제를 확인할 수 있습니다

HttpContext.Current.User.Identity.IsAuthenticated 

는 IIS에서 인증 수준을 확인, 너무 거기에 Windows 인증을 사용하도록 설정되어 있습니까?

4

예, 당신이 필요합니까 :

<authentication mode="Windows"></authentication> 
<identity impersonate="true"/> 
<authorization> 
    <allow users="?"/> 
</authorization> 

이 : 나는 내 webconfig에서 다음을해야합니까 Windows 통합 인증을 사용하고 있습니다.

그 후, 당신은 로그인 한 사람의 이름을 잡을 수 있어야한다

아니, 당신이 필요로하지 않습니다. 그것은 최대 때 빈 인증되지 않은 제공

<validation validateIntegratedModeConfiguration="false" /> 
+0

만 가지고도 사용자 이름이 없도록 webconfig를 변경했습니다. 내 컴퓨터에서 사이트를 탐색 할 때 내 사용자 이름 (해당 컴퓨터에 로그인 한 사용자)이 표시 될 것으로 예상됩니다. 내가 무엇을 놓치고 있는지 잘 모르겠다. – obautista

+2

IIS의 응용 프로그램 수준에서 Windows 통합 인증을 구성 했습니까? – Icarus

8

iis에서는 익명 액세스를 사용하지 않도록 설정하고 웹 응용 프로그램의 통합 Windows 보안을 사용하도록 설정합니다.

2

IIS에서 사이트 \ 기본 웹 사이트 \ [Your Website]로 이동하십시오.

인증 옵션을 선택하고 익명 인증을 사용하지 않도록 설정하십시오.

1

제 경우에는 줄을 web.config에서 제거하는 것이 좋습니다.

섹션에도 <authentication mode="Forms" />이 있습니다.

관련 문제