Yan*_*nis 10 c# asp.net-mvc forms-authentication single-sign-on
我有个问题.我最近做过一些工作的客户有一系列具有不同登录机制的网站.他希望慢慢迁移到他的网站的单一登录机制(所有写入asp.net mvc).
我在这里查看我的选项,所以这里是一个要求列表:
我正在考虑创建一个与表单身份验证一起工作的库,它可以公开所需的任何方法(例如登录,注销,激活等)以及通过电子邮件,注册处理等实现激活的小型宁静服务.
考虑到已经遗漏了许多东西以使这个问题简短而重要,这听起来像是一个好的设计吗?
但这看起来是一个非常普遍的问题,所以我可以使用任何现有的项目吗?
谢谢阅读.
需要认识到的基本一点是,您无法跨多个域使用标准表单身份验证来对用户进行身份验证。例如,dev.google.com 和 www.google.com 是不同的域,如果用户登录 dev.google.com,他不会自动登录 www.google.com,除非 Google 采取特殊措施来启用此功能。这是因为浏览器无法访问其他网站的cookie。
真正使跨域登录发挥作用的唯一方法是在 URL 的查询字符串中包含一个键值(例如会话 ID),网站会检查该值并设置用户的身份验证 cookie。您可以使用少量您自己的自定义代码通过您的网站手动执行此操作。
示例:http://www.example.com/autoLogin.aspx? sessionid=23232323
但这种方法的危险在于,有人可能通过找出用户使用的地址并检查会话 ID 来欺骗用户会话。因此,您需要确保用于跨域验证用户身份的值是时间敏感且动态的。不要将其设为用户的用户 ID 或用户名或类似内容。
现在,如果这些站点位于同一域中,您可以为它们提供相同的 MachineKey,然后当用户在同一域中的不同网站之间移动时,已经登录到一个站点的用户将不会被注销。
| 归档时间: |
|
| 查看次数: |
5515 次 |
| 最近记录: |