在ASP.Net Webforms和MVC中实现单点登录

时间:2013-07-03 12:34:51

标签: asp.net-mvc authentication webforms

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

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

我完成了我的作业并阅读了参考文献hereherehere等。

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

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

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

      

尽管如此,我还没有设法让SSO工作。我已经管理了“单点注销”,当用户注销一个网站时,他已经与另一个网站签约。

有什么我想念的吗?

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

1 个答案:

答案 0 :(得分:2)

我只是为了关闭而回答我自己的问题。

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

FormsAuthentication.SignOut();

登录完成后不久。

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

因此,只要您的应用程序不使用表单身份验证执行有趣的操作,上面定义的步骤就可以正常工作。