0

我有四个系统在同一台服务器上运行。我想让用户为所有系统登录一次。我制作了一个用户管理系统来创建用户并对其进行编辑。

我试图在会话中保存,但没有帮助。

有什么建议么?我正在研究 asp.net。

4

3 回答 3

0

最好的方法是使用 Federated Security。如果您使用的是 Windows 身份验证,则可以使用 Active Directory 联合身份验证服务 (ADFS)。在此模型中,用户引用 Web 应用程序并检查当前线程上的主体。如果值为 null,则存储在 web.config 中的信息将自动将请求重定向到登录页面。这是假设没有 Windows 安全上下文,否则用户可以自动登录。

用户成功登录到环境后,将填充线程上的主体,并发出一组特定于该用户的声明。由于声明与主体相关联,而不是与特定应用程序相关联,因此任何声明感知应用程序都可以全面使用它们。

如果你不使用 Windows 身份验证,你仍然可以完成同样的事情,唯一的问题是你不能使用 ADFS。相反,您必须实现自己的身份提供程序来替换 ADFS。.NET Framework 确实提供了基类和接口来帮助您实现这一目标。

于 2012-07-07T17:54:59.483 回答
0

有两种方法。

大多数解决方案围绕在中心站点发生的登录,然后返回目标站点用来检索用户的身份信息字段(登录令牌)。

当您访问另一个站点时,该站点会很快将您重定向到中央站点,如果您已登录(持久 cookie),您将取回您的身份。

或者,您可以与推荐人一起做很多事情并玩弄。

你想在互联网上做一些研究 - 你看 kfo 是“单点登录”。

http://www.codeproject.com/Articles/27576/Single-Sign-on-in-ASP-NET-and-Other-Platforms

有一些技术讨论。

您可以阅读完整的独立网站(域)

http://aspalliance.com/1513_Cross_Site_Authentication_and_Data_Transfer

怎么做 - 显然共享 cookie 在那里不起作用。

于 2012-07-07T14:58:35.470 回答
-1

我建议查看 ActiveDirectory 或任何 LDAP 服务器以进行单点登录以访问所有应用程序。如果您不能(或不希望)使用 LDAP,您可以使用任何内存/磁盘存储实现类似的功能(但需要花费更多的开发工作/时间)。如果这不可能,请分享原因,因为它可能对其他人有用。

希望这可以帮助。

于 2012-07-07T14:50:32.230 回答