0

我有一个 silverlight Ria 应用程序。我使用 WebContext 来制作身份验证人员。我在 App.cs 构造函数中有这些行(它已经与 silverlight 业务模板一起提供): InitializeComponent();

WebContext webContext = new WebContext();
webContext.Authentication = new FormsWithTimeoutAuthentication(20);

this.ApplicationLifetimeObjects.Add(webContext);

我遇到了一个问题,当我在一个浏览器选项卡中打开应用程序时,一切正常,我尝试打开另一个选项卡并使用不同的用户登录,这会影响第一个选项卡中的应用程序。我跟踪了 WebContext 哈希码并得到了同样的结果。所以 WebContext 似乎在两个应用程序实例上共享。

你知道为什么会这样吗?提前致谢 ...

4

1 回答 1

1

Silverlight 使用浏览器的 http 堆栈进行身份验证。当您使用表单身份验证时,浏览器 cookie 会发送到浏览器,它会识别您当前浏览器会话的经过身份验证的用户。所有浏览器选项卡共享相同的 cookie,因此所有选项卡都被标识为同一用户。

为避免此问题,您应在 Internet Explorer 上使用“私人浏览”,或在 Google Chrome 上使用“隐身”。

于 2013-07-23T06:12:53.837 回答