2017-07-23 47 views
8

Próbuję napisać aplikację, która komunikuje się z adresem URL protokołu OAuth. Komunikacja z adresem URL protokołu OAuth przebiega prawidłowo, a użytkownik jest prawidłowo monitowany o zalogowanie. Jednak z powodu ograniczeń w przekierowaniu adresu URL aplikacji nie mogę przekierować do domeny aplikacji ms (co, jak sądzę, jest sposobem otwierania aplikacja UWP na Windows 10 - popraw mnie, jeśli to założenie jest nieprawidłowe!).Przekierowanie do aplikacji UWP z OAuth bez aplikacji ms-app

Czy poza hostowaniem własnej strony internetowej i utworzeniem przekierowania ktoś wie, jak to zrobić?

Kod obecnie używam dla klienta jest przykładowy kod:

try 
{ 
    var webAuthenticationResult = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, url); 

    switch (webAuthenticationResult.ResponseStatus) 
    { 
     case WebAuthenticationStatus.Success: 
      // Successful authentication. 
      result = webAuthenticationResult.ResponseData.ToString(); 
      break; 

     case WebAuthenticationStatus.ErrorHttp: 
      // HTTP error. 
      result = webAuthenticationResult.ResponseErrorDetail.ToString(); 
      break; 

     default: 
      // Other error. 
      result = webAuthenticationResult.ResponseData.ToString(); 
      break; 
    } 
} 
catch (Exception ex) 
{ 
    // Authentication failed. Handle parameter, SSL/TLS, and Network Unavailable errors here. 
    result = ex.Message; 
} 

Problem objawia się tak:

Error reads: "We can't connect to the service you need right now. Check your network connection or try this again later."

+0

Dla "Ze względu na ograniczenia w przekierowaniu adresu URL aplikacji, nie mogę przekierować do domeny aplikacji ms", czy mogę się dowiedzieć, co to oznacza? Czy chodziło Ci o połączenie z funkcją rejestracji pojedynczej, ale dostawca internetowy nie pozwala zarejestrować identyfikatora URI przekierowania w formie 'ms-app: // '? –

+0

@ SunteenWu-MSFT tak, właśnie to! –

Odpowiedz

3

W UWP można powiązać protokół do Twoja aplikacja poprzez precyzyjne linki, dzięki czemu otwiera domyślnie dowolny adres URL z tym protokołem.

Więcej informacji o głębokim linkowaniu here.

Zasadniczo tworzysz swój własny protokół (tworząc, mam na myśli, że wymyślasz sekwencję ciągów takich jak "mój-wielki-protokół: //") i rejestrujesz swoją aplikację, aby na nią odpowiedzieć, to nie musi być ms -app: //.

Jeśli naprawdę nie można połączyć się z niczym oprócz standardowych protokołów, można skorzystać z usługi skracania adresów URL, która przekieruje następnie do niestandardowego protokołu. Nie zezwala na to wiele usług skracania adresów URL, ale tutaj: https://ipkill.org

+0

To jest dokładnie to, czego szukałem. Dzięki! –

1

Czy próbujesz zarejestrować niestandardowy schemat przekierowań, który otwiera się po zalogowaniu. Na przykład: redirect-uri=ms-app://test1 powinien otworzyć schemat niestandardowy. Skorzystaj z tego link, aby dowiedzieć się, jak zarejestrować niestandardowy schemat identyfikatora URI. Po wywołaniu niestandardowego schematu uri możesz użyć tego niestandardowego schematu do wywoływania aplikacji UWP. Niestandardowy schemat URI składa się ze skryptu (powłoki lub skryptu wsadowego dla systemu Windows). Możesz napisać wiersz, aby wywołać swoją aplikację UWP.