0

user.fld_usr_name의 값이 임의의 이름Linq는 AD 쿼리에

사용자와 문자열 매개 변수

ByVal user As GUser 

이로 주어진 객체를하지 않는 LINQ 쿼리입니다 작동하지 이

Dim result = (From usr In users Where usr.Name.Contains("random name") Select usr).ToList() 
를 작동하는 하나

Dim result = (From usr In users Where usr.Name.Contains(user.fld_usr_name) Select usr).ToList() 

이 오류

Object reference not set to an instance of an object. 

내가 Active Directory의 라이브러리에 Linq에이를 사용하고 있습니다에게 아마 그것이 내가 올라 갔다

+0

줄에서 중단 점을 설정하고 'user.fld_usr_name'이 null인지 확인해 보셨습니까? – ebb

+0

그것은 "임의의 이름"입니다. 공백 문자가 다를 수 있습니다 ... (나는 좌절 2 시간 후에 모든 가능성을 탐색하기 시작합니다) – BBQ

답변

0

내가 다에게 시도했습니다

엔티티에 LINQ 의미합니다

해당 플러그인의 소스 코드에 삽입하십시오.

LINQ가 C#처럼 vb.net과 같이 작동하지 않습니다. 플러그인은 C# 코드 였지만 중요하지 않습니다. 아주 이상한.

시간이 지났기 때문에 구체적인 내용을 잊어 버렸지 만, 속성이 참조가 아닌 값으로 전달된다는 사실과 함께해야했습니다. 또는 그것이 정적이어야한다는 사실 ... 내가 그것을 고칠 줄 알았다면

나는 모든 사용자를로드하기 위해 공유 속성을 사용했고 그 작업을했습니다. 누군가가이 버그를 해결하는 방법을 알고 있다면 알려주십시오.

0

또 다른 생각은 활성 디렉토리가 "사용자"또는 "그룹"이 무엇인지에 대한 정의가 너무 느리다는 것입니다. 예를 들어, 그룹; 보안 그룹과 메일 그룹이 있습니다. 그러나 AD는 보안 그룹, 인증 그룹, 배포 그룹, 위치 그룹 등과 같은 것을 구현할 수도 있습니다. 그런 다음 IT 부서에서 OU가 매트릭스 그룹을 나타내는 방식으로 설정할 수 있습니다. 그러나 보안 그룹 목록을 다시 가져 오도록 AD에 지시하면 보안 그룹 유형을 사용하여 모든 것을 다시 만들 수 있습니다.

이제 백업하고 다른 방향에서 보면 "사용자"가 실제로 사용자가 아님을 알 수 있습니다. 일부는 다르게 사용되므로 "이름"속성을 사용하지 않았습니다. 나는 몇 번에 걸쳐이 연결을 통해 OU에 연결된 드릴을 연결하고 적절한 것으로 생각한 다음 해당 OU의 모든 이름을 다시 가져 오려고했습니다. 필드가 실제로 사용되지 않으면 널로 돌아가서 응용 프로그램을 날려 버릴 것입니다. 가난한 광고 디자인입니까? 보통. 많은 조직이 실제로 조직을 대표하는 방식으로 작업하는 대신 사용자 또는 그룹을 만들어 작업을 수행하는 습관을 갖습니다. 예를 들어 웹 응용 프로그램에서만 사용되는 사용자 계정을 만들거나 앞에서 설명한 것처럼 몇 명의 특수 사용자를위한 몇 가지 권한을 포함하도록 새 그룹을 만들 수 있습니다. 물론이 문제는 응용 프로그램을 코딩 할 때 데이터베이스 관점에서 보려고한다는 것입니다. 그러나 그것은 데이터베이스가 아닙니다. 컬렉션 컬렉션입니다. 표준화되지 않은 동적 인 플랫 파일. : (

아마 당신에게 적용되는 것처럼 linq 쿼리는 아마도 이름 필드가 해당 컬렉션에 대해 null이기 때문에 zilch를 반환 할 수 있습니다.이 때문에 이제 GUID 또는 기본 GUID 만 사용합니다.이름이있는 경우에는 searcher와 guid guids를 사용하고 guids를 사용하여 찾고있는 정보가있는 디렉토리 항목을 만듭니다.