【发布时间】:2014-09-18 11:00:59
【问题描述】:
我正在我的 Windows Phone 8.1 应用程序中进行 OAuth2 身份验证,并且我正在使用 WebAuthenticationBroker 和 WP 的 AuthenticateAndContinue() 方法。
我正在向我发送两个参数的服务器进行身份验证,它返回我的访问令牌,中间没有任何其他步骤。鉴于这种情况,我没有 callbakUri,所以我使用 WebAuthenticationBroker.GetCurrentApplicationCallbackUri()
我的代码如下所示:
Uri endpointURL = new Uri(_requestUrl + "&client_id=" + clientId + "&client_secret=" + clientSecret);
Uri callbackUri = WebAuthenticationBroker.GetCurrentApplicationCallbackUri();
WebAuthenticationBroker.AuthenticateAndContinue(endpointURL, callbackUri, null, WebAuthenticationOptions.None);
我的项目中有ContinuationManager.cs 类,以及App.xaml.cs 中所需的所有更改,如下所述:http://msdn.microsoft.com/en-us/library/dn631755.aspx
我的问题是,在我执行上面的代码之后,ContinuationManager 类中的Continue() 方法永远不会执行,所以我的应用程序在那里阻塞。
我在这里遗漏了什么吗?
【问题讨论】:
-
我不知道您正在调用什么服务,但它可能需要其中一个参数中的回调 URI(以及客户端 ID 和客户端密码)。否则,它无法猜测身份验证后需要将用户重定向到哪里
-
就是这样,事实并非如此。我可以改为通过 HTTP POST 发出请求,但使用新类会很好。
-
_requestUrl的值是多少? -
请解释“使用新类会很好”。你有一把新螺丝刀,你想用它把钉子钉进墙上?如果您可以使用 POST 请求发出请求,那为什么不呢?看我的回答。
标签: c# oauth-2.0 windows-phone-8.1 continuations