1

我有一个使用老式 asp.net (v2.0) 编写的旧应用程序,我需要将它与使用 MVC3、.Net 4.0 编写的新站点集成。(如有需要,旧站可升级至4.0)

这可能吗?我已经阅读了有关在多个站点上使用 SSO 和表单身份验证的信息,但是所有帖子都是关于多个 asp.net 或多个 MVC 站点的——我还没有看到任何关于将两者混合的内容。

如果两个站点都在同一个域下,并且具有相同的机器密钥,这应该工作吗?

编辑:这个问题的附加部分,如果可以使用表单身份验证使 SSO 工作,是否也可以允许这两个应用程序使用相同的会话状态服务,从而在应用程序之间共享会话状态?我知道 sessionid 存储在 cookie 中,所以两个应用程序都可以为单个用户访问相同的会话信息吗?

4

1 回答 1

0

表单身份验证受域限制(因为默认情况下,cookie 仅限于域(或子域,如果已配置)。如果在同一个域中,则可以。

不过,也可以进行变通以跨域共享身份验证。

一种解决方法是使用 Web 服务进行远程身份验证。每个涉及的站点都将使用相同的服务进行身份验证,即使身份验证仍然是特定于域的,也可以创建一种解决方法,包括将标识值传递给另一个域中的请求。该标识符将用于根据一些通用标识符(用户 ID、电子邮件等)自动验证用户身份。由于我们谈论的是 http 通信,它不一定“必须”是特定于 .net 的,尽管它会简单得多。

还需要考虑 OAuth 开放式身份验证协议。几乎所有主要平台都支持 OAuth,因此它应该与平台无关。但是,我不知道“重定向到您的其他应用程序时的自动身份验证可能违反 OAuth。如果是这种情况,用户将需要单击按钮来确认某些内容。

OAuth 的一个很好的例子就是 Stack Overflow 和整个 Stack Exchange 系列网站。

于 2013-04-16T02:02:57.607 回答