2

我只是在试用新的 Office 365 Api 工具预览版,当 Web 身份验证代理在 Windows 8 应用程序中打开时,我总是收到错误消息。我第一次使用该应用程序时能够登录,但从那时起,我什至没有机会登录就收到此错误。请参阅下面的错误截图(它们有白色背景):

Web 身份验证代理屏幕上的消息: Web 身份验证代理屏幕上的消息

在我单击代理上的后退按钮后,我收到第二条错误消息: 错误警报

如果我单击“退出”按钮,则不会发生任何事情。我还尝试清除所有缓存,并关闭所有其他浏览器会话。由于登录是第一次工作,我知道应用程序配置正确。就好像它以某种方式进入了一个糟糕的状态,然后缓存了一些无效的东西,阻止它正确导航到登录页面。

最后要注意的是,除了创建一个新的 Windows 8 应用程序并添加具有共享点访问权限的连接服务引用之外,我对该项目所做的唯一另一件事是更改起始页:

 rootFrame.Navigate(typeof(GroupedItemsPage), e.Arguments);
 rootFrame.Navigate(typeof(SharePointSamplePage), e.Arguments);

有什么我可以清除的以将应用程序重置为原始状态吗?或者有人知道这个错误的解决方案吗? 我之前在我正在开发的其他应用程序上看到过它,但这只是暂时的,在这种情况下它会一遍又一遍地发生。

更新:

经过更多的开发时间后,我实际上在我正在处理的另一个应用程序中看到了同样的问题。无论为调试而构建、为发布而构建、清理解决方案、清除缓存等,WebAuthenticationBroker 都会失败,这也是一样的......第二个不相关的项目没有使用 Office365 Api 工具,也没有使用新的 Azure Active Directory 库Office365 api 工具示例代码中使用的 AuthorizationContext 类。它直接使用 WebAuthenticationBroker.authenticateAsync 方法。这意味着问题可能是由较低级别的东西引起的,并且与 Office 工具或 AAD 库无关。此外,虽然 WebAuthenticationBroker 继续失败,但我仍然可以使用浏览器通过同一服务进行身份验证,这意味着它' s 还不足以成为实际网络的问题。这个问题似乎持续了不同的时间段,几分钟或一个小时,下次我运行应用程序时,它会按预期神奇地工作。

这是开发的主要障碍,因为如果无法验证和检索访问令牌,就无法发出请求。考虑到这个错误有多严重,而且似乎没有其他人抱怨这个问题,也许这是一个环境问题?是否有任何设置会间歇性地导致此问题?

4

2 回答 2

1

The WebAuthenticationBroker does some caching which might result in the wrong token being sent over, depending on what whether you changed tenants between the original authentication and now. It appears that resetting your Windows password might be the simplest way to force a token refresh. Please share your experiences if you try this.

Additionally: if the above is in fact your problem, and you still need to be able to support multiple tenants within the same app, please see this: http://msdn.microsoft.com/en-us/library/azure/dn151789.aspx

于 2014-05-05T12:29:26.140 回答
0

我忘了用对我有用的解决方案来更新这篇文章。显然,提琴手不工作的“临时”时间段也与我打开提琴手的时间相对应。我一直无视 Fiddler 是一个潜在问题,因为来自该应用程序的其他 http 请求可以正常工作。事实证明,有一个单独的隐藏 AppContainer 的形式Microsoft.windows.authhost.{random},专门为 WebAuthenticationBroker 生成,在 Fiddler 配置中没有给予豁免。

这个答案的原始来源是埃里克劳伦斯本人对其他有同样问题的人的回复:

https://groups.google.com/forum/?fromgroups#!topic/httpfiddler/YwpKpC2HFIQ

于 2014-05-06T13:17:22.270 回答