UWP - WebAuthenticationBroker在发布模式下崩溃

时间:2017-02-24 02:24:34

标签: c# oauth-2.0 uwp

我正在制作一个使用OAuth2的UWP应用。我正在使用WebAuthenticationBroker类,它在设备上进行调试时很好,但只是更改为发布和运行会导致应用程序在打开auth对话框时崩溃。 这是代码,几乎是他们在MSDN上给你的样板。

try {
            var webAuthenticationResult = await Windows.Security.Authentication.Web.WebAuthenticationBroker.AuthenticateAsync(Windows.Security.Authentication.Web.WebAuthenticationOptions.None, startURI);

            switch (webAuthenticationResult.ResponseStatus) {
                case Windows.Security.Authentication.Web.WebAuthenticationStatus.Success:
                    // Successful authentication. 
                    var uri = new Uri(webAuthenticationResult.ResponseData);
                    var index = uri.Query.IndexOf('=') + 1;
                    code = uri.Query.Substring(index);
                    _accessToken = await GetAccessToken(code);
                    vault.Add(new PasswordCredential("myApp", "token", Token));
                    break;
                case Windows.Security.Authentication.Web.WebAuthenticationStatus.ErrorHttp:
                    // HTTP error. 
                    throw new HttpRequestException(webAuthenticationResult.ResponseErrorDetail.ToString());
                default:
                    // Other error.
                    throw new Exception(webAuthenticationResult.ResponseData.ToString());
            }
        } catch (Exception ex) {
            // Authentication failed. Handle parameter, SSL/TLS, and Network Unavailable errors here. 
            throw ex;
        }

1 个答案:

答案 0 :(得分:0)

事实证明,我需要为此特定API传递结束URI的第三个参数。不知道为什么它在调试中没问题但是...现在看起来都很好。只需要摆脱手机顶部的边距。我做了一件事,在项目的属性中,我选择了删除所有数据的选项。我不确定这是否有所作为。