0

Мы переносим универсальное приложение Windows 8 в Windows 10 как новый проект, и до сих пор мне удалось настроить аутентификацию, работать и взаимодействовать с API Office 365.Интегрированная аутентификация Windows в Windows 10 Универсальные приложения

В Windows 8 моим сотрудникам удалось установить Windows Integrated Authentication с использованием свойства UseCorporateNetwork для контекста аутентификации. Поскольку я использую WebAccountProvider вместо WebAuthenticationBroker, я не смог найти способ сделать это.

Может ли кто-нибудь указать мне в правильном направлении, чтобы внедрить интегрированную проверку подлинности Windows в универсальном приложении Windows 10?

Вот ссылка на пример AuthenticationHelper из Windows 8: (UseCorporateNetwork будет раскоментирована в нашей версии). https://github.com/chakkaradeep/O365UniversalApp/blob/0ff04169e57ed365c78a85c1cb480cc90fa5b6b0/O365UniversalApp/O365UniversalApp.Windows/AuthenticationHelper.cs

Вот ссылка на пример AuthenticationHelper от Windows 10: https://github.com/icebeam7/walker/blob/55861001816db49f59a66a93951459f12d14ad51/Walker/AuthenticationHelper.cs

Любая помощь будет оценена, спасибо.

ответ

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; 

     }`