2011-11-30 5 views
1

저는 ASP.NET 2.0 웹 응용 프로그램을 가지고 있습니다. 내 개발 컴퓨터에서 디버그 모드로 실행하면 propellerty User.Identity.Name이 비어 있지 않으면 내 이름 "MyDomain \ myname"을 반환합니다. 아파치와 모노 런타임이있는이 동일한 앱을 Linux 서버에 배포하면 User.Identity.Name이 비어 있습니다.프로덕션 환경에서 User.Identity.Name이 비어 있습니다.

내가 틀렸어?

편집 : 인증 유형을 알지 못합니다. 나는 아무것도 사용하지 않고 web.config 'as as'를 사용합니다. 또한 시도했습니다. <authentication mode="Windows"/>

+0

인가? –

+0

나는 이것이 사용되는 인증 유형과 관련이 있다고 가정합니다. 양식 인증을 사용하고 있습니까? – Icarus

+0

글쎄, 내가 사용하는 인증 유형을 알지 못한다. – stighy

답변

1

모노는 "없음"및 "양식"인증 모드 만 지원합니다. "양식"은 ASP.NET 양식에서 사용하는 인증입니다. "없음"은 인증이 필요 없음을 의미합니다. 지원되지 않는 옵션은 "Windows" 과 "Passport"입니다. 당신도 개발 시스템 아파치와 모노 런타임과 리눅스 박스는

Mono: Config system.web authentication

1

익명으로 응용 프로그램에 연결하고 있습니다.

을 가정 형태에게 인증을 사용하고 있습니다 : 당신은 당신의 설정 파일의 system.web 섹션에 보면
이 , 그래서 같은 부분이 있어야한다 :

<system.web> 
    <authorization> 
    <deny users="?"/> 
    <!-- deny anonymous --> 
    <allow users="*"/> 
    <!-- allow all authenticated --> 
    </authorization> 
</system.web> 

당신이 확인하는 경우 deny users="?" 설정이 Asp.Net은 페이지에 대한 액세스를 허용하기 전에 사용자를 인증해야합니다. 이렇게하면 User.Identity.Name 속성이 설정됩니다.

관련 문제