0

我正在开发一个保管箱 asp.net 应用程序,它至少在 localhost 模式下工作。但是我面临一个问题,我希望仅在本地主机测试期间并且不会(不能)在生产中发生。这有点难以解释,所以我将逐步描述它。

1)浏览器没有运行,我在调试器中启动了“登录会员目标页面”。它要求 Dropbox 提供登录和权限。此时,在我的 Oauth 派生类中,我将带有访问令牌和机密的保管箱对象存储在会话变量中。

2)在我实际的“登录”页面中,我从会话中提取对象并开始使用保管箱,它工作正常。

3) 现在假设我停止从 Visual Studio 2012 进行调试。对代码进行一些修改。现在我重新开始。这次浏览器已经登录到 Dropbox 并且目标页面显示为已登录。我没有看到来自 Dropbox 的“允许”提示。但是现在没有会话变量来提取我的下拉框对象,因为这是一个新会话。但对于 Dropbox,它是已经登​​录的会话。

我想确认这种情况只能在 localhost 运行期间发生,而不能在实际生产应用程序中发生,因为它总是来自浏览器中的网站,该网站将拥有自己的会话。或者它会发生吗?在这种情况下有什么解决方案。

另一个疑问是,如果浏览器打开但应用程序正在启动新会话,为什么下次保管箱不要求允许提示。它必须从某个地方获取相同的访问令牌和秘密。从哪里?

4

1 回答 1

0

我想我找到了一个可行的解决方案。如果我发现会话丢失,我执行以下代码并注销用户。即使这种情况可能只发生在我的本地测试中,这也可以解决。

                FormsAuthentication.SignOut();
                Response.Redirect("/");
                return;
于 2013-10-31T14:50:39.213 回答