0

在默认网站中,我有 2 个 asp.net Web 应用程序 App1 和 App2。当用户登录时,用户名和密码在 sql 数据库的用户表中验证时具有相同的登录控制。登录的用户信息存储在 3 个会话变量中。登录后 app1 重定向到 profile.aspx,app2 重定向到 dashboard.aspx。profile.aspx 有一个链接 app2,dashboard.aspx 有一个链接 app1。如果用户单击该链接,他应该已经登录了该应用程序。如果用户从任何一个应用程序注销,他应该同时注销这两个应用程序。

如何在我的 App1 和 App2 中添加上述 sso 功能

4

3 回答 3

0

应用程序将在同一个域中吗?如果是,那么您需要做的就是将 App 2 的表单身份验证设置为 App 1 或其他方式,并确保为两个应用程序指定相同的机器密钥。本文对如何在子域中实现 SSO 进行了更多说明:http: //www.codeproject.com/Articles/27576/Single-Sign-on-in-ASP-NET-and-Other-Platforms

于 2012-12-28T20:14:45.113 回答
0

我建议你看看Windows Identity Foundation

于 2012-12-28T19:01:48.063 回答
0

我假设您的应用程序中使用了表单身份验证。Forms 身份验证生成身份验证票以验证随后的用户请求,并使用“机器密钥”对身份验证票进行签名。通过为所有应用程序使用相同的机器密钥将解决该问题。但是,根据需要集成的应用程序的范围,需要考虑不同的场景。

  1. 配置为同一域内的虚拟目录
  2. 配置为子域
  3. 完全两个不同的网站

1 和 2 可以通过在 web.config 中指定相同的机器密钥来解决。

3 需要自定义解决方案,例如通过查询字符串传递加密参数。

有关机器密钥的更多信息,请参见此处

于 2012-12-28T20:29:18.437 回答