c# – 多个网站,单点登录设计
我有个问题.最近我一直在做一些工作的客户有一系列具有不同登录机制的网站.他正在寻求慢慢迁移到他的网站的一个单一的登录机制(全部写在asp.net mvc中).
我在看这里的选择,所以这里有一个要求的列表: 它必须是安全的(呃) 我正在考虑创建一个与表单身份验证相结合的图书馆,公开任何所需的方法(例如登录,注销,激活等等)和小型的休息服务,以实现从电子邮件,注册处理等方面的激活. 考虑到大量的东西被遗漏了,使这个问题很简单,到目前为止,这听起来像一个好的设计? 但这看起来是一个非常常见的问题,所以没有任何现有的项目,我可以使用? 谢谢阅读. 解决方法
要实现的基本要求是,您无法使用跨多个域使用标准Forms身份验证身份验证用户.例如,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来欺骗用户会话.因此,您需要确定用于跨域的身份验证的值是时间的感觉和动态.不要使用户的用户名或用户名或类似的内容. 现在,如果网站在同一个域上,您可以给他们所有相同的MachineKey,然后当同一个域上的不同网站移动时,已经登录一个站点的用户将不会被注销. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |