1

System.DirectoryServices을 사용하여 나중에 데이터 액세스를 만들려고합니다. MVC 2 프레임 워크를 사용하여 모든 견해를 강하게 유형화하고 싶습니다. 아무도 이것에 좋은 방법을 알고 있습니까?누구나 system.directory 서비스 클래스를 개발할 때 사용할 좋은 습관을 알고 있습니까?

public class Group 
{ 
    public string DistinguishedName { get; set; } 
    public string GroupName { get; set; } 
} 

을 그리고 추상적 인 인터페이스 :

예를 들어 나는 그룹 엔티티를 생성하는 시작

public interface IGroupRepository 
{ 
    List<Group> Groups { get; } 
} 

나는 system.directory 서비스를 사용하여 GroupRepository 개발에 대한 혼란 스러워요. SQL 데이터베이스에 연결하는 것은 어디에서나 쉽습니다. 그러나 MVC를 사용하는 클래스와 함께 System.directory 서비스를 사용하여 찾을 수 없었습니다. 누군가 이런 식으로하려고 했습니까? 모든 위대한 것입니다

+0

덧붙여서 저장소와 관련하여 LINQ (또는 적어도 lambdas)는 친구입니다. 목록을 노출하는 대신 함수 가져 오기 (ByVal 쿼리 As System.Linq.Expressions.Expression Of System.Func (Of T, Boolean))) IQueryable (Of T)'(VB 실례)로 다음 수 있습니다. 'Repository.Get (Function (x) x.Name = "GroupName")' – Basic

답변

2

당신은 .NET 3.5 (그리고 당신이 MVC 2를 사용하는 경우 기회가 좋다)라면, 당신은 새로운 System.DirectoryServices.AccountManagement 네임 스페이스를 체크 아웃해야합니다. 많은 .NET 클래스와 유형을 제공합니다. 정기적으로 다루는 많은 디렉토리 객체들 - 바퀴를 다시 발명 할 필요가 없습니다 (다시 한번!).

체크 아웃이 S.DS.AM 네임 스페이스를 사용하는 방법에 대한 MSDN의 잡지에이 위대한 기사 :

Managing Directory Security Principals in the .NET Framework 3.5

업데이트 : 나는 완전히 이해하지 못하는 이유의 간단한 방법에 대한UserPrincipal을 ASP.NET MVC보기의 모델로 사용하면 작동하지 않습니다. ASP.NET MVC가 해당 개체의 속성을 "찾을 수"없는 것처럼 보입니다.

그래서 접근이 뭔가 할 수있을 것입니다 :

  • 잡아 당신의 UserPrincipal (또는 DirectoryEntry) Active Directory에서
  • 별도의 ViewModel 정의 - 속성을 보유하고이 단지 클래스를, 성 등등
  • 자신이 ViewModel 클래스를 채우거나 UserPrincipal (DirectoryEntry)에서 ViewModel로 쉽게 매핑 할 수 있도록 AutoMapper과 같은 도움을받을 수 있습니다.
  • 다음 디스플레이 (또는 편집)
  • 해당 개체
을 "적절한"개체로 뷰 모델에서 다시 변경을 전송하고 지속하여 가능한 모든 업데이트를 처리 표준 ASP.NET MVC보기에서의 ViewModel 클래스

그것은 조금 더 복잡합니다. 그러나 솔직히 다른 방법으로 당신이 할 수있는 방법을 알지 못합니다.

+0

AccountManagement 네임 스페이스가 정말 멋지게 보입니다. MVC 프레임 워크와 통합하는 것에 대해 혼란스러워합니다. 예를 들어 사용자와 내 모델은 어떻게 생겼으며이 네임 스페이스를 사용하여 모델에 데이터가 채워지는 방식은 무엇입니까? 누구든지 짧지 만 도움이되는 훌륭한 예를 제공 할 수 있다면. 여기서 시작하는 데 문제가 있습니다. – Nando

+0

예를 들어, 사용자를 업데이트하려고한다고 가정 해 봅시다. firstname 및 lastname에 대한 텍스트 상자를 표시하는보기가 있습니다. mvc를 사용하면 어떻게 이런 식으로 Accountmanagement 프레임 워크를 업데이트 할 수 있습니까? – Nando

+0

@marc_s 내 이전 코멘트를보십시오 – Nando