0

Microsoft.Preview.WindowsAzure.ActiveDirectory.Authentication ライブラリを介して AAD で認証する JavaScript Windows ストア アプリがあります。これは、Azure でホストされている ASP.NET WebAPI に対して機能します。正常に動作し、ユーザーにログインするように促します (Windows ログイン サービス)。一度ログインすると、ユーザーは作業でき、再度ログインするように求められることはありません。私が見つけた問題は、ユーザーがしばらくアプリを使用していない場合、よくわかりませんが、20 分から 30 分の間だと思いますが、アプリはアイドル状態になります。ユーザーのクエリには応答しません。webApiとの通信が途絶えてしまったのだと思いますが、アプリが取得したトークンの有効期限が切れているのか、Azure自体が接続を切断しているのかはわかりません。

これは私がトークンを取得する方法です

var authcontext = new aal.AuthenticationContext(audience);
aal.DefaultTokenCache().clear();
return authcontext.acquireTokenAsync(resource, clientID, redirectUri.absoluteUri, "", null).then(function (result) {
     if (aal.AuthenticationStatus.succeeded == result.status) {
         accessToken = result.accessToken;
         return true;
     }
}

および webApi 呼び出し

var uri = new Windows.Foundation.Uri(apiUrl + apiName);
        var httpClient = new Windows.Web.Http.HttpClient();

        httpClient.defaultRequestHeaders.authorization =
            new Windows.Web.Http.Headers.HttpCredentialsHeaderValue("Bearer", accessToken);

        return httpClient.getAsync(uri).then(function (response) {
            if (response.isSuccessStatusCode == true)
                return response.content.readAsStringAsync().then(function (responseText) {
                    var array = JSON.parse(responseText);
                    return array;
                });
            else
            {
                var md = new Windows.UI.Popups.MessageDialog(response, "Error");
                md.showAsync();
            }
        });

追加してみました

<sessionTokenRequirement lifetime="96:00:00" />および<cookieHandler persistentSessionLifetime="60.0:0:0" requireSsl="true" />web.configにありますが、それでもエラーが発生します。

更新トークンについて何か読んだので、プロジェクトに ADAL の新しいリリースを追加しようとしましたが、それに取り組んでいますが、Windows ストア アプリの例が見つかりません。

問題の原因と解決方法についての手がかりはありますか??

御時間ありがとうございます。

4

1 に答える 1

0

使用しているライブラリのバージョンは古く、サポートされていません。また、Cookie は API 通信には関与しません。最新の安定した ADAL に切り替えることをお勧めします。ADAL を使用した Windows ストアのサンプル: https://github.com/AzureADSamples/NativeClient-WindowsStore

于 2015-03-05T16:13:51.520 に答える