我正在制作一个使用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;
}
答案 0 :(得分:0)
事实证明,我需要为此特定API传递结束URI的第三个参数。不知道为什么它在调试中没问题但是...现在看起来都很好。只需要摆脱手机顶部的边距。我做了一件事,在项目的属性中,我选择了删除所有数据的选项。我不确定这是否有所作为。