2

我正在尝试开发一个 Web 服务器应用程序,在使用 C# 和 .net 的内部服务器上运行。我的应用程序的目的是与谷歌日历交互,阅读事件,然后生成差旅费用报告。

基于此处示例中的 OAuth2 代码,我能够想出一个主要工作的应用程序。

我说主要是因为在某个地方,关于用户是否已登录和/或已通过身份验证以及哪个用户已登录,会产生混淆。

例如:如果我启动 Chrome,然后访问我的应用程序,一切都很好,但如果我打开另一个浏览器(IE 或 FF),登录到不同的 Google 帐户,然后启动我的应用程序,它给出的报告是在 Chrome 中曾/已登录 Google 的帐户?在第一个浏览器(本例中为 Chrome)中,URL 包含参数 ?code 但第二个浏览器中的 URL 不包含,并且仍然只是我的应用程序的 URL。

当我使用不同的 Google 帐户在第二个浏览器中启动我的应用程序时,似乎身份验证失败(按钮文本保持“身份验证”但代码行,见下文,获取日历列表仍在执行并收到响应后单击“身份验证”按钮,返回的数据来自通过第一个浏览器登录的帐户。

CalendarList response = _service.CalendarList.List().Fetch();

我试图找出为什么会发生这种情况但没有取得多大成功,但它开始让我发疯,并且到目前为止限制了我的应用程序的有用性。

问题是否与存储在我们服务器上的会话状态信息有关?我使用的 OAuth2 代码示例是否已过期,如果是,我在哪里可以找到正确的示例?

任何建议,将不胜感激。

谢谢

4

1 回答 1

0

我同意 user2367592,尝试在没有静态服务的情况下测试您的应用程序,如果它有效,请告诉我们。

无论如何,在 1.5 版(目前我们使用 1.3)中,我们将摆脱 DotNetOpenAuth 并改善整个 OAuth2 体验,所以 - 抱歉给您带来不便。

于 2013-05-10T13:00:24.897 回答