0

우리는 유니버설 Windows 8 응용 프로그램을 새 프로젝트로 Windows 10에 이식하고 있으며 지금까지 인증을 설정하고 작동하고 Office 365 API와 상호 작용할 수있었습니다.Windows 통합 응용 프로그램의 Windows 통합 인증

Windows 8에서 동료는 인증 컨텍스트에 UseCorporateNetwork 속성을 사용하여 Windows 통합 인증을 설정할 수있었습니다. WebAccountProvider 대신 WebAuthenticationBroker를 사용하고 있으므로이 작업을 수행 할 수있는 방법을 찾지 못했습니다.

Windows 통합 응용 프로그램에서 Windows 통합 인증을 구현하려면 올바른 방향으로 나를 가리켜 주시겠습니까?

다음은 Windows 8의 AuthenticationHelper에 대한 링크입니다. (UseCorporateNetwork는 버전에서 주석 처리가 해제됩니다.) https://github.com/icebeam7/walker/blob/55861001816db49f59a66a93951459f12d14ad51/Walker/AuthenticationHelper.cs

어떤 도움을 주시면 감사하겠습니다, 감사 : 여기 https://github.com/chakkaradeep/O365UniversalApp/blob/0ff04169e57ed365c78a85c1cb480cc90fa5b6b0/O365UniversalApp/O365UniversalApp.Windows/AuthenticationHelper.cs

윈도우 10에서 예를 AuthenticationHelper에 대한 링크입니다.

답변

0

GetTokenHelperAsync 메서드를 변경하여이 작업을 수행 할 수 있습니다. 다음은 코드입니다.

// Get an access token for the given context and resourceId. An attempt is first made to 
// acquire the token silently. If that fails, then we try to acquire the token by prompting the user. 
public static async Task<string> GetTokenHelperAsync(string resource) 
{   
string token = ""; 
      aadAccountProvider = await WebAuthenticationCoreManager.FindAccountProviderAsync("https://login.microsoft.com", authority); 

      // Get Microsoft Web Account Manager Provider 
      var provider = await WebAuthenticationCoreManager.FindAccountProviderAsync("https://login.microsoft.com", authority); 

      // Request result token to Web Account Manager 
      WebTokenRequest webTokenRequest = new WebTokenRequest(provider, "", clientId); 
      webTokenRequest.Properties.Add("resource", resource); 
      WebTokenRequestResult webTokenResult = await WebAuthenticationCoreManager.RequestTokenAsync(webTokenRequest); 

      // Show access token 
      if (webTokenResult.ResponseStatus == WebTokenRequestStatus.Success) 
      { 
       WebTokenResponse webTokenResponse = webTokenResult.ResponseData[0]; 
       userAccount = webTokenResponse.WebAccount; 
       token = webTokenResponse.Token; 
      } 

      if (userAccount != null) 
      { 
       // Save user ID in local storage. 
       _settings.Values["userID"] = userAccount.Id; 
       _settings.Values["userEmail"] = userAccount.UserName; 
       _settings.Values["userName"] = userAccount.Properties["DisplayName"]; 
      } 
      else 
      { 
       SignOut(); 
       return null; 
      } 

      return token; 

     }`