원격으로 전화를 걸 때 Active Directory를 검색하는 방법은 무엇입니까?


1

사용자의 저장된 암호 목록에서 오는 자격 증명을 사용하고 로컬 Windows 자격 증명 대신 자격 증명을 사용하는 방법이 있습니까?

인트라넷 사이트를 통해 전자 메일 업데이트에 등록 할 수 있도록 Active Directory 사용자 이름을 기반으로 사용자의 전자 메일 주소를 조회해야합니다. 사용자가 실제로 시스템에 로그인하면이 직접 그 도메인의 일부 쉬운만큼 보인다 - 나는 그들의 이름을 기준으로 광고를 검색 할 자신의 정체성 이름을 사용할 수 있습니다 :

using(DirectoryEntry root = new DirectoryEntry("LDAP://admachine.domain.local")) 
{ 
    using(DirectorySearcher searcher = new DirectorySearcher(root)) 
    { 
    //strip the domain from the username and find the user in AD 
    var username = Regex.Replace(Page.User.Identity.Name, @".*\\", string.Empty); 
    searcher.ReferralChasing = ReferralChasingOption.All; 
    searcher.SearchScope = SearchScope.Subtree; 
    searcher.Filter = string.Format("(&(objectCategory=user)(objectClass=person)(sAMAccountName={0}))", username); 
    var foundUser = searcher.FindOne(); 

    //error checking occurs here... 
    var email = foundUser.Properties["mail"][0].ToString(); 

    //TODO: stuff with the email address 
    } 
} 

그러나에 PC에서 작업하는 경우 집이 작동하지 않습니다. Page.Identity.Name은 내 작업 영역 (WorkDomain\dave.downs)으로 인증 할 때 사용한 자격 증명을 무시하고 내 PC에 로그온 한 이름 (MyMachine\Dave)으로 확인됩니다.

DirectoryEntry은 저장된 자격 증명을 선택하여 실제로 광고에 바인딩하고 검색 할 수있게하지만 내 로컬 컴퓨터에 포함될 var username으로 사용하는 방법을 찾을 수 없습니다. 대신 사용자 이름.

내가 실제로하려는 일을 실제로 수행 할 수있는 방법이 있습니까? 아니면 잘못된 방식으로 진행되거나 벽돌 벽에 머리를 대고 있습니까?

  0

웹 서버 인증을 구성하는 방법과 전화를 정확히 입력하는 방법은 무엇입니까? 저는 "Page.User.Identity.Name"이 도메인 외부의 완전히 신뢰할 수없는 컴퓨터의 Windows 사용자 이름 일 수 있습니다. 적어도 Windows 인증이 사용 된 경우에는 조금 혼란 스럽습니다. 22 feb. 092009-02-22 15:19:37

  0

인증은 현재 Windows로 설정되어 있으며 Cisco VPN 클라이언트를 사용하여 전화를 겁니다. 클라이언트에서 전화를 거는 것 외에도 컴퓨터에서 브라우징하는 것과 같이 도메인에서 무엇이든하고 싶은 경우 내 도메인 사용자 이름과 암호를 제공해야하므로 관리되는 암호 목록에 설정됩니다. 22 feb. 092009-02-22 20:34:51

  0

원격으로 로그인 할 때 Windows 인증도 * 사용 * 되셨습니까? 그럼에도 불구하고 브라우저가 기본 인증을 사용합니까? 나는 여전히 약간의 설정 에러/잘못된 기대를 의심하고있다 ... 23 feb. 092009-02-23 00:14:57

1

IIS를 사용하고 있다고 가정합니다. 익명 액세스를 사용하지 않도록 설정하고 Windows 인증을 사용하도록 설정합니다. 그렇게하면 도메인에없는 사람은 도메인 사용자와 비밀번호를 지정할 수있는 팝업을 받게됩니다. 도메인 사용 서버에서 오는 사용자의 경우 아무 것도 변경되지 않습니다. 하지만 그런 식으로 신원이 항상 valide 도메인 사용자를 해결할 것이라고 보장합니다. 이렇게하면 "도메인이 아닌 사용자가 보게됩니다"라는 문제가 해결됩니다. 자세한 내용은 Windows Authentication Provider을 확인하십시오. 그들은 윈도우 인증을 통해 로그인 한 경우

  0

IIS *가 익명으로 설정 되었다면 그가 회사에있을 때 코드가 실행된다는 것을 어떻게 설명 하겠는가? 같은 오류가 발생해야합니다. 23 feb. 092009-02-23 00:12:05


0

, 당신은 사용할 수 있습니다

System.Security.Principal.WindowsIdentity.GetCurrent().User 

을하면 로그인 한 사용자의 SID를 줄 것이다.

IIS에서 익명 액세스 및 통합 보안을 사용하지 않도록 설정하고 강제로 https 아래의 기본 인증을 통해 로그인하십시오. 이렇게하면 현재 세션이 인증 된 도메인 사용자로 실행되고 있는지 확인할 수 있습니다.