您好!欢迎来到bet9官网登录
当前位置:主页 > 汉语言文学 >
谁都能看懂的单点登录(SSO)完成方法(附源码

  SSO英文全称Single Sign On(单点登录)。SSO是在多个应用系统中,用户只需求登录一次便可以访问一切相互信赖的应用系统。它包罗可以将此次主要的登录映照到其他应用中用于统一个用户的登录的机制。它是今朝比拟风行的企业营业整合的处理计划之一。(本段内容来自百度百科)

  明天这篇文章将引见SSO的一种完成方法,代码超复杂,仅用来验证我的思路可否可行,具体细节请大年夜家来完美!

  甚么是二级域名呢?例如:

  关于二级域名的单点登录,我们可以十分便利的经过共享cookie来完成,复杂的说,就是在设置Form单子的时分,将cookie的domain设置为顶级域名便可,例如:

  这类方法不触及跨域,当cookie的domain属性设置为顶级域名以后,一切的二级域名都可以访问到身份验证的cookie,在效劳器端只需验证了这个cookie便可以完成身份的验证。

  然则,当跨域的时分,例如:

  这个时分就不能共享cookie了,所以下面的处理计划就会掉效。那么,要完成跨域的单点登录该若何做呢?请继续往下看。

  关于跨域的SSO的设计思路,我画了一个复杂的流程图:

  image

  起首,我将跨域的SSO分为SSO-Server和SSO-Client两个局部,SSO-Client可所以多个的。

  SSO-Server主要担负用户登录、注销、为SSO-Client分派taken、验证taken的任务。

  登录和注销采取的是Form认证方法,很多中央都有具体的引见,我之前也写过一篇文章,想了解的可以去看看:asp.net

  Forms身份验证详解

  SSO-Server分派Token

  为SSO-Client分派Token的局部,在SSO-Client恳求SSO受信页面的时分,检查SSO-Server可否登录,假设没有登录则跳转到SSO-Server的登录页面,假设已登录,则履行分派Token的代码,在分派完成以后将TokenID作为参数添加到returnUrl中,并跳转到returnUrl,具体的分派代码以下:

  当完成Token分派以后,页面将带有TokenID的参数跳转到SSO-Client页面,并在SSO-Client的Cookie中添加Token值,在以后的每次恳求中,SSO-Client经过调用SSO-Server的效劳来验证Token的正当性。

  SSO-Server验证Token

  我是经过WebService来验证Token的。

  起首在SSO-Server定义一个Web Service:

  ValidateToken用来验证TokenID的正当性,KeepToken用来保持Token不会过时。

  SSO-Client经过调用Validate验证Token,并掉掉落以后的登录用户信息。接上去看看SSO-Client的完成。




上一篇:股票前的N、XD、XR、DR、ST辨别表现甚么?

下一篇:没有了