WebAuthenticationBroker は、 my へのナビゲーションを処理できないようですms-app://
。以下に示すように、この醜いエラーをスローするだけです。
手順
AuthenticateAsync()
実行時に取得されたコールバック uri を含むCall :WebAuthenticationBroker.GetCurrentApplicationCallbackUri()
- 承認プロセスを経て、Allowを押します。
- 戻る代わりに、ブローカーはサービスに接続できませんというページを表示します。現在必要なサービスに接続できません。 何もできないので、表示されている [戻る] ボタンを押しました。
- デバッガーはキャッチ時に中断します:
"The specified protocol is unknown. (Exception from HRESULT: 0x800C000D)"
のコールバックは受信されますが (Fiddler4 とイベント ビューアーによると)、プロトコルWebAuthenticationBroker.AuthenticateAsync()
の解釈方法がわからないかのように、前述の例外がスローされます。ms-app://
すべての例は、私のコードが機能するはずであることを示していますが、問題の原因はそれほど明白ではないと思います。
コード
private static string authorizeString =
"https://api.imgur.com/oauth2/authorize?client_id=---------&response_type=token";
private Uri startUri = new Uri(authorizeString);
public async void RequestToken() {
try {
var war = await WebAuthenticationBroker.AuthenticateAsync(
WebAuthenticationOptions.UseTitle
, startUri);
// Imgur knows my redirect URI, so I am not passing it through here
if (war.ResponseStatus == WebAuthenticationStatus.Success) {
var token = war.ResponseData;
}
} catch (Exception e) { throw e; }
}
イベント ビューアー ログの抜粋 (時系列)
これを入手した方法については、MSDN のWeb authentication problems (Windows)を参照してください。残念ながら、これはauthhost.exe ナビゲーション エラーをクエリしたときの唯一の検索結果です。
- 情報:
AuthHost redirected to URL: <ms-app://s-1-15-2-504558873-2277781482-774653033-676865894-877042302-1411577334-1137525427/#access_token=------&expires_in=3600&token_type=bearer&refresh_token=------&account_username=------> from URL: <https://api.imgur.com/oauth2/authorize?client_id=------&response_type=token> with HttpStatusCode: 302.
- エラー:
AuthHost encountered a navigation error at URL: <https://api.imgur.com/oauth2/authorize?client_id=------&response_type=token> with StatusCode: 0x800C000D.
- 情報:
AuthHost encountered Meta Tag: mswebdialog-title with content: <Can't connect to the service>.
読んでくれてありがとう、スタック。今私を失望させないでください!