2013-12-09 4 views
1

Active Directory에 대한 Windows 인증이있는 응용 프로그램 (MVC4)이 있습니다. 사용자가 (브라우저 로그인 대화 상자를 통해) 로그인 한 후, 사용자가 업데이트 할 수있는 데이터 (예 : 주소)를 가진 페이지를 가져옵니다.업데이트 도중 액세스가 거부 됨 Active Directory 개체

사용자가 저장 버튼을 클릭하면 '액세스가 거부되었습니다.'오류가 발생하지만 Active Directory에 적절한 권한이 있습니다. 나는 사용자를 통과하고 이것의 암호를 다음과 같이 사용자가 로그온 한 경우,

using (DirectoryEntry de = new DirectoryEntry (path)) 
{ 
    SetEntityPropertyValue(de, "mail", user.Email); 
    de.CommitChanges(); 
} 

:하지만

using (DirectoryEntry de = new DirectoryEntry (path, user, password)) 
{ 
    SetEntityPropertyValue(de, "mail", user.Email); 
    de.CommitChanges(); 
} 

작동

나는 다음과 같은 코드로 사용자 데이터를 저장합니다. 뭐가 문제 야? Windows 인증에서 사용자 자격 증명을 얻어서 이것이 자동으로 발생하지 않는다면 DirectoryEntry() 메소드에 전달하는 방법은 무엇입니까?

이전에는 쓰지 않았지만 IIS와 AD는 다른 컴퓨터에서 실행됩니다.

+0

xiyal, 답변을 찾았습니까? 나는 같은 문제를 진압하고있다. –

답변

0

처음에는 Active Directory에 쓰기 권한이 충분하지 않은 IIS 응용 프로그램 풀 ID를 사용하여 Active Directory를 인증했지만 AD에서 항목을 읽을만큼 충분하다고 생각합니다. 대신 impersonation을 찾고 있다고 생각합니다. 그러면 응용 프로그램이 인증 된 Windows 사용자로 실행됩니다.

web.config에 추가해보세요.

<configuration> 
    <system.web> 
    <identity impersonate="true"/> 
    </system.web> 
</configuration> 

허용되면 가장 된 Windows 사용자는 Active Directory에 쓸 수있는 충분한 권한이 있어야합니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 나는 성공하지 못해서 가장을 가장 일찍 시도했다. IIS와 AD는 다른 컴퓨터에서 실행되며 가장을 사용하면 인증 할 수 없습니다 - 로그인 대화 상자에 계속해서 표시됩니다 :/ – xiyal

+0

부스가 동일한 도메인에 있습니다. – xiyal

+0

@xiyal 아, 네가 더블 홉 문제의 희생양이되는지 궁금해. 해결하려면 Active Directory 관리자를 참여시켜야합니다. http://blogs.technet.com/b/askds/archive/2008/06/13/understanding-kerberos-double-hop.aspx 및/또는 http://blogs.technet.com/b/taraj/archive/ 2009/01/29/checklist-for-double-hop-issues-iis-and-sql-server.aspx –

관련 문제