OAuth2混乱,C#.Net

时间:2013-05-09 20:47:32

标签: google-api-dotnet-client

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

根据示例here中的OAuth2部分代码,我能够提出一个主要适用的应用程序。

我之所以这么说,主要是因为某些地方出现了关于用户是否已登录或验证以及用户是否已登录的混淆。

例如: 如果我启动Chrome然后访问我的应用程序,一切都很好,但如果我再打开另一个浏览器(IE或FF),登录到其他Google帐户然后启动我的应用程序,它提供的报告就是该帐户/在Chrome中登录Google?在第一个浏览器(在这种情况下为Chrome)中,URL包含参数?代码,但第二个浏览中的URL不包含,而且只是我应用程序的URL。

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

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

我已经尝试过没有太大的成功来找出为什么会这样,但它开始让我发疯,到目前为止限制了我的应用程序的实用性。

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

任何建议都将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

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

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