2017-10-03 3 views
-4

최근 고객이 Google 제품이 도메인 이름을 채우지 않는다고 불평했습니다.CurrentDomain과 UserDomainName의 차이점은 무엇입니까?

이 코드에서는 사용자 이름과 사용자의 도메인 이름을 사용하여 Active Directory의 멤버 자격 목록을 쿼리합니다. 우리의 코드에서

, 우리는 Environment.UserDomainName를 사용 : 나는 코드의 간단한 라인에서 보았을 때

var domain = Environment.UserDomainName; 

, 나는 그것이 PlatformNotSupportedExceptionInvalidOperationException이을 올릴 수 발견했다.

Environment.UserDomainName

는 도메인 이름을 읽는 다른 방법을 찾고, 나는 AppDomain.CurrentDomain 건너 온 : 좋은, 그러나 또한 트리거 될 수있는 AppDomainUnloadedException을 가지고 나타납니다

var domain = AppDomain.CurrentDomain.FriendlyName.Split(".".ToArray())[0]; 

.

AppDomain.CurrentDomain

첫 번째 질문 :
이이 개 방법이 항상 로컬 PC에 우리의 프로그램을 실행하는 특정 사용자에 대해 동일한 정보를 반환 할 것인가?

두 번째 질문 :
이 (로컬 PC에 우리의 프로그램을 실행하는 특정 사용자, 다시) 다른 것보다 하나의 방법 이하 "예외가 발생하기 쉬운"인가?

마지막 질문 :
가 발생되는 예외가 발생하지 않습니다 우리의 응용 프로그램을 실행하는 사용자의 로컬 도메인 이름을 얻는 방법이 있습니까?

편집 : 타일러 리

For Tyler Lee

+1

'Environment.UserDomainName'을 사용할 때 어떤 예외가 발생 했습니까? –

+0

고객이 PlatformNotSupportedException을보고합니다. 내 개발 PC에 어떤 오류도 발생하지 않습니다. 그게 내가 질문하는 이유입니다. – jp2code

+0

귀하의 고객은 어떤 플랫폼을 실행하고 있습니까? –

답변

0

AppDomain.CurrentDomain Property은 현재 응용 프로그램 및 현재 스레드의 도메인입니다.

즉, 이것은 프로젝트의 도메인입니다.

Visual Studio의 프로젝트 속성 페이지에서이를 프로젝트의 어셈블리 이름이라고합니다. 반대로

Visual Studio Assembly name

, Environment.UserDomainName Property 현재 사용자를 통해 로그인 네트워크 이름이다.

두 개는 관련이 없습니다.

2

를 들어 당신은 심지어 AppDomain.CurrentDomain.FriendlyName의 가치가 무엇인지 확인하려고 했습니까?

enter image description here

질문 하나에 대답 : 아니, 그들은하지 않습니다.
질문 2는 질문 1을 고려해 적용하지 않는 것 같습니다.
질문 3 : 아마도 아닙니다. Environment.UserDomainName은 네트워크 도메인 이름을 얻는 소스 인 것처럼 보이며 발견 한대로 예외를 생성 할 가능성이 있습니다. MSDN 페이지에는 이러한 예외가 발생하는시기에 대한 세부 정보가 나와 있으므로 문제가 발생하면이를 처리 할 수있는 코드를 작성해야합니다.

+0

내 컴퓨터에 없습니다. 둘 다 동일합니다. 그래서 내가 여기 와서 물었습니다. – jp2code

+0

@ jp2code 추가 사진을 봅니다. 내 예와 같이 두 값이 일치하지 않습니다. 나는 당신이 왜 그들이 일치하는지 물어 보았다면 혼란스러워합니다. 그것들은 응용 프로그램이 네트워크 도메인과 이름이 같지만'HARRIS'는'Harris.vshost.exe' (또는 Visual Studio 디버그에서 실행되지 않을 때 Harris.exe')와 같지 않다는 점에서 비슷합니다 –

+0

Microsoft의 설명서는 혼란 스럽다. 그 중 하나가 프로젝트 응용 프로그램 정보 용이고 다른 하나는 네트워크 도메인 정보 용이라는 것을 알지 못했습니다. StackOverflow.com은 답변을 가지고 있기 때문에 질문을 삭제하지 않을 것입니다. – jp2code