1

我有一个现有的 WebForms 应用程序,我们现在正在创建一个新的 MVC 应用程序。他们都使用我们自己的自定义提供程序进行身份验证,使用相同的数据库。

我可以使用相同的凭据分别成功登录每个应用程序,但我现在想要的是实现单点登录(即:如果用户已经在 app1 中登录,app2 会自动检测用户的设置并识别他如已登录)。

我已经完成了我的作业并阅读了这里这里这里的参考资料,等等。

到目前为止,我已经完成了以下工作:

  • 在两个站点上设置相同的 machineKey:

  • 在两个站点上设置相同的表单身份验证:

尽管如此,我还没有设法让 SSO 正常工作。我管理了“单点注销”,即当用户注销一个站点时,他就从另一个站点注销了。

有什么我想念的吗?

我想要一个仅配置的解决方案,不需要我进行任何编码。

4

1 回答 1

2

我只是为了结束而回答我自己的问题。

我的 SSO 无法正常工作的原因是,现有的主要网站有自己的 cookie 和会话管理器,并且不符合 Forms 身份验证的规则。它调用

FormsAuthentication.SignOut();

登录完成后不久。

我尝试了上面提到的 3 个不同网站的配置,MVC 和 WebForms 的混合,不同的管道(集成与经典),以及我们的自定义会员提供程序,这一切都非常有效。

因此,只要您的应用程序不使用表单身份验证做有趣的事情,上面定义的步骤就应该有效。

于 2013-07-08T09:46:17.920 回答