내 UWP
앱에서 Microsoft Graph SDK를 사용하고 있습니다 . 내 Azure
계정에는 UWP
다음 쿼리를 사용하여 내 앱 에 표시하려는 총 13 명의 사용자가 있습니다. 그러나 쿼리는 하나 (로그인 한 사용자) 만 반환합니다. 로 로그인 한 경우에도 발생합니다 Global admin
. 또한 userType
사용자의가 다음과 같이 표시됩니다.Null
var users = await graphClient.Users.Request()
.Select("displayName, userPrincipalName, userType")
.GetAsync();
Scopes
내 앱의 승인 :User.Read User.Read.All
모든 사용자 목록을 표시하는 Azure Portal :
참고 :의 위 쿼리 UWP
는 이러한 사용자 중 한 명 (로그인 한 사용자) 만 반환합니다.
Azure에 등록 된 앱 의 API 권한 :
업데이트 :
사용자 문의에 대한 답변 @Allen Wu
:
a) 다음 NuGet
패키지를 설치했습니다 .
Install-Package Microsoft.Toolkit.Uwp.Ui.Controls -Version 6.0.0
Install-Package Microsoft.Toolkit.Uwp.Ui.Controls.DataGrid -Version 6.0.0
Install-Package Microsoft.Toolkit.Graph.Controls -IncludePrerelease
그리고 변수 설정을 사용 graphClient
하고 있습니다.ProviderManager.Instance.GlobalProvider.Graph;
b) 글로벌 관리자 역할을 할당 한 세 번째에서 마지막 계정 ( hotmail
이미지 1에 표시된 Microsoft 계정)과 두 번째에서 마지막 계정 (Microsoft Outlook
계정)을 사용하여 앱을 테스트했습니다 . 그러나 그들은 Azure AD 계정이 아닙니다.
잘못된 부분을 수정하거나 지적 할 수 있도록 코드를 제공해야합니다.
그러나 어쨌든 나는 그 이유를 찾았습니다.
두 개의 계정 Microsoft hotmail
계정과 Microsoft Outlook
계정은 실제로 MSA (Microsoft 개인 계정)입니다.
게스트 사용자로 테넌트에 추가되었지만 인증 엔드 포인트가 common
인 경우이 계정은이 테넌트의 게스트 사용자 대신 개인 계정으로 처리됩니다. 여기에서 참조를 참조 하십시오 . 코드 common
에서 기본적으로 사용 하고 있으므로 사용자는 MSA로 취급되며 자신의 정보 만 얻을 수 있습니다.
따라서 요청에 테넌트 ID 를 지정해야합니다 . 어떻게 생성하는지 모르겠습니다 graphClient
. 그러나 공식 문서 인증 코드 공급자 및 사용자 목록 예제를 참조 할 수 있습니다 .
그러나 여전히 WithAuthority
.
여기에 예 :
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
.Create(clientId)
.WithRedirectUri(redirectUri)
.WithAuthority("https://login.microsoftonline.com/{tenant id}/v2.0")
.WithClientSecret(clientSecret) // or .WithCertificate(certificate)
.Build();
AuthorizationCodeProvider authProvider = new AuthorizationCodeProvider(confidentialClientApplication, scopes);
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
var users = await graphClient.Users
.Request()
.GetAsync();
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다