如何为多个系统获取一个登录页面?

时间:2012-07-07 14:37:40

标签: c# asp.net

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

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

有什么建议吗?我正在使用asp.net。

3 个答案:

答案 0 :(得分: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不会在那里工作。

答案 1 :(得分:0)

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

用户成功登录环境后,将填充线程上的主体并发出一组特定于该用户的声明。由于索赔与委托人相关联而非特定申请,因此可以通过任何索赔意识应用程序全面使用索赔。

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

答案 2 :(得分:-1)

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

希望这会有所帮助。