【发布时间】:2014-02-10 12:36:39
【问题描述】:
我的任务是解决 SilverLight 应用程序中的错误,但是我的身份验证知识充其量只是基本知识,所以我非常卡住并寻求帮助。
问题在于,如果用户登录到应用程序,然后打开另一个浏览器选项卡/窗口并从应用程序内访问 URL,这是完全可以接受的,并且据我们所知,系统工作正常。当用户从一个选项卡/窗口注销应用程序,然后尝试继续在另一个选项卡/窗口上工作时,就会出现问题,在这种情况下,会根据用户的操作引发各种错误。
我们已经在应用程序中有一个计时器来检测与数据库的连接问题,所以我认为在这里检查用户是否经过身份验证是一个好的开始,所以我检查了AuthenticationService.User.Identity.IsAuthenticated,但不幸的是,这总是正确的。因此,我研究并调试了我的代码,并且一旦Logout 方法完成,该属性实际上设置为false,但是当用户在另一个选项卡上注销后我调试应用程序时似乎并非如此/窗口。
我在互联网上进行了研究,但我能找到的所有类似问题都是由不相关或我不完全理解的东西引起的。
系统使用继承自FormsAuthentication 的身份验证类,但所有Login 和Logout 函数都使用基本WCF RIA AuthenticationService 服务方法。
任何人都可以就问题所在提出一些建议吗?
【问题讨论】:
-
如果您尝试在第二个选项卡中执行任何操作,而您已从第一个选项卡注销,是否会因您已注销而导致任何错误?
-
@CorneaAli 我得到的错误通常是基于服务失败,这是有道理的,因为用户已经注销了
AuthenticationService,但应用程序似乎只有在尝试时才“意识到”这一点调用服务。
标签: c# authentication forms-authentication wcf-ria-services