• 适合每个人的单点登陆(SSO)


      单点登陆(SSO),一个很老的问题.

    详细内容请参考 Single Sign-On for everyone

    Michael Morozov对很多情形的SSO做了阐述: 

    1.         /子应用在虚拟子目录之间的SSO.
    2.         不同授权凭证应用之间的SSO(用户名重映射)
    3.         同根下的二级子域名应用之间的SSO
    4.         不同.NET版本应用之间的SSO
    5.         不同域名应用之间SSO.
    6.         混合验证模式下的SSO(窗体验证/Windows验证)

    尽管已经详细描述了这么多种情形,但我还是遇到了一点儿问题. 花了俺一天, 特此共享一下:
    (我测试的是: http://localhost/test1/, http://localhost/test2/, http://localhost/test3/)

    1.       在所有应用的web.config中设定相同的name,.CROAUTH
    <authentication mode="Forms">
       <forms name=".CROAUTH" protection="All" loginUrl="Login.aspx" />
    </authentication>

    2.       所有应用的web.configSystem.Web节点下添加machineKey,默认值是各个应用自动生成的
    <machineKey validationKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902" decryptionKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC" validation="SHA1" />

    3.       每个应用都是独自的登陆页面,验证后以RedirectFromLoginPage跳转.
        if(fa.Login(strLogCode,strPassword))
            FormsAuthentication.RedirectFromLoginPage(strLogCode, false);

    4.       尽管号称SSO,他们仅共享cookie,跳转时有几个应用仍将建立几个Seesion.
      各应用之间仅共享登陆名信息,需有Session补全信息机制.如根据LogCode取部门,邮件等.

  • 相关阅读:
    2020.7.11
    2020.7.13
    2020.7.9
    2020.7.10
    Java入门——day13
    Java入门——day12
    Java入门——day11
    虚拟交换机
    KVM虚拟化 ProxmoxVE
    【路径】python环境错误调试【执行路径】【操作系统,版本】
  • 原文地址:https://www.cnblogs.com/crabo/p/661949.html
Copyright © 2020-2023  润新知