2009-12-15 3 views
0

내 웹 앱이 Windows 인증을 사용하도록 설정되어 있고 가장이 true로 설정되어 있습니다. asp.net 가장 설정

<authentication mode="Windows"/> 
    <identity impersonate="true"/> 

내 로컬 컴퓨터 (IIS6)에서 실행

, 내 현재 로그인과 액티브 디렉토리에 액세스 할 수 있습니다.

WindowsIdentity curIdentity = WindowsIdentity.GetCurrent(); 
WindowsPrincipal myPrincipal = new WindowsPrincipal(curIdentity); 

그러나 내 사이트에 원격으로 액세스 할 때 가장이 작동하지 않는 것 같습니다. 사용자가 속한 그룹을 표시하고 매우 짧은 목록을 얻습니다!

그 밖의 무엇이 필요합니까?

답변

1

가장은 컴퓨터간에 자격 증명을 1 홉 이상 전달하지 않습니다. 그래서 귀하의 컴퓨터에서 IIS로 이동하지만, 더 이상 활성 디렉토리에 액세스하는 것은 2 번째 홉입니다. 모든 것이 동일한 머신에서 실행될 때 (로컬 케이스에서와 같이) 잘 작동합니다.

http://msdn.microsoft.com/en-us/library/aa292118(VS.71).aspx

+1

... Kerberos를 사용하지 않는 한 ... – JohnFx

+0

사실 이보다 더 복잡합니다. 계정 위임에 들어가서 제한 사항을 해결하기 위해 시작할 수 있습니다. –

+0

OK, 뭔가를 확인하는 중 ... kerberos를 사용하지 않고 (올바른) 사용자 이름을 얻을 수있는 방법이 없습니까? –

-1

난 당신이 사용자를 지정해야 확신 :

<identity impersonate="true" userName="contoso\Jane" password="pass"/> 

이 그렇지 않으면 제한된 권한을 갖게됩니다 ASP.Net 사용자를 사용합니다.

자세한 내용은 암호화 된 사용자 이름/암호 저장 방법을 포함하여 here을 참조하십시오.