인트라넷 응용 프로그램을 구축 중이며 Windows 인증을 사용하고 있습니다. 나는이 설정 및 작업을하고 난 내가 등 표시 이름, 이메일 주소,.net mvc가 Active Directory와 통합되고 데이터 모델을 사용하여 System.DirectoryServices.AccountManagement에 액세스하십시오.
를 검색하기 위해 Active Directory를 쿼리 싶습니다 @ Context.User.Identity.Name를 통해 현재 사용자의 사용자 이름을 볼 수 있어요
나는 System.DirectoryServices.AccountManagement를 살펴 봤고 기본 예제를 만들었다. 내 응용 프로그램을 통해이 정보를 표시하는 방법에 대한 명확하지 않습니다.
public class searchAD
{
// Establish Domain Context
PrincipalContext domainContext = new PrincipalContext(ContextType.Domain);
public searchAD()
{
// find the user
UserPrincipal user = UserPrincipal.FindByIdentity(domainContext, HttpContext.Current.User.Identity.Name);
if (user != null)
{
var userGuid = user.Guid;
var DisplayName = user.DisplayName;
var GivenName = user.GivenName;
var EmailAddress = user.EmailAddress;
}
}
}
을 내가 그렇게 같은 뷰 모델을 만들 필요가 가정하고 다음과 같이
는 내가 지금까지 가지고있다?
public class domainContext
{
public Nullable<Guid> userGuid { get; set; }
public string DisplayName { get; set; }
public string GivenName { get; set; }
public string EmailAddress { get; set; }
}
이 응용 프로그램의 다양한 섹션에서이 정보에 액세스 할 수 있기를 원합니다.
나는이 모든 것을 하나로 묶어주는 어떤 것이 든 누락 된 것처럼 보입니다.
이전 코드를 사용해 보았지만 불행히도 작동하지 않았습니다. DisplayName, GivenName 등을 내보기로 전달하는 방법을 명확하게 설명해 주시겠습니까? – Stephen
자세한 내용으로 대답하도록 수정되었습니다. – bittenbytailfly
대단히 감사합니다. 나는 거의 다 왔다고 생각한다. 그냥 HttpContext에 대한 오류가 발생했습니다 - 정적 참조가 아닌 객체에 대한 객체 참조가 필요합니다 ... – Stephen