有没有办法在Microsoft.Graph中没有用户输入的情况下静默登录

时间:2017-03-24 04:20:39

标签: c# uwp office365 microsoft-graph onedrive

我正在开发一个使用Microsoft.Graph API的UWP应用程序。每次我关闭我的应用程序,然后我需要使用我的Hotmail凭据再次登录进行授权。 我为GetToken实现了这个代码:

private static async Task<string> GetTokenForUserAsync()
        {
            try
            {
                authResult = await PCA.AcquireTokenSilentAsync(Scopes);
                userToken = authResult.Token;
            }
            catch (Exception)
            {
                if (userToken == null || expiration <= DateTimeOffset.UtcNow.AddMinutes(5))
                {
                    authResult = await PCA.AcquireTokenAsync(Scopes);

                    userToken = authResult.Token;
                    expiration = authResult.ExpiresOn;
                }
            }

            return userToken;
        }

但每次我重新打开我的应用程序,然后AcquireTokenSilentAsync()方法抛出一个异常,最终我必须通过登录过程并给我的应用程序一堆权限。是否有任何可以在没有登录过程的情况下授权我的应用程序的静默身份验证方法。

1 个答案:

答案 0 :(得分:0)

您似乎遇到了Hotmail安全功能和身份验证方法的问题。虽然这对您来说很方便,但我只是登录并处理麻烦,因为这会产生很多安全问题。如果有人利用您的程序,他们会自动登录,想象一下这可能给您带来的安全风险。编码时不要为了方便而牺牲安全性!