我正在与一个在C#/ ASP.NET中开发应用程序的小团队合作,最近我们遇到了身份验证问题。我们的程序对用户进行身份验证的方式是使用表单身份验证并根据我们公司的Active Directory验证用户输入。这一切在我们的开发环境中都运行良好,但是当我们实际将其部署到店内用户时出现了问题。我不太了解店内计算机设置,但商店中的所有计算机都使用同一帐户登录到Windows。由于计算机系统的设置方式,商店中的所有计算机共享许多相同的信息,包括cookie。显然,这是一个问题,因为表单身份验证将登录凭据存储在cookie中。如果站点上有单个用户,则没有问题,但如果另一个用户同时尝试访问该站点,则该网站的行为就好像他们都在同一台计算机上访问该网站一样(这与尝试访问两个不同选项卡中的网站)。
到目前为止,我们已经研究过使用无cookie解决方案(在Uri中存储登录信息),但这似乎不是一个可行的解决方案,因为我们的程序很大程度上依赖于将用户特定数据发布回网站。我们也无法改变商店电脑的设置方式。我们需要的是让两个用户同时登录的方法,就好像他们在同一个浏览器和计算机上的两个不同选项卡上一样。
老实说,我不知道从哪里开始,我非常感谢任何建议。
编辑: 对不起,我在解释这个问题上做得很糟糕,我的细节也很少。我会尝试更好地解释它。我们的Web应用程序正在我们公司的商店中使用,商店计算机的工作方式是它们都远程到另一台服务器。这就是我在细节上非常低的地方,但似乎商店中的所有计算机都共享信息,例如cookie。这意味着如果UserA登录计算机#1,它们就没问题了。但是,如果UserB从计算机#2(在同一商店中)登录到该站点,由于计算机的配置方式,计算机#1现在具有来自计算机#2的身份验证cookie,因此两台计算机现在都以用户B在我们的网站上。如果其中任何一个注销,cookie无效并且两台计算机都已注销,则会发生同样的情况。我希望这有助于澄清事情。