如何使用asp.net framework 4.0实现单点登录

如何使用asp.net framework 4.0实现单点登录,.net,asp.net,.net-4.0,single-sign-on,.net,Asp.net,.net 4.0,Single Sign On,我有一个父web应用程序和一个子web应用程序。我在他们之间使用单点登录。子应用程序应该将匿名用户重定向到父应用程序的登录页面,我们刚刚将这两个应用程序都更新到.net 4.0 framework,现在SSO不再工作 设置如下所示。我在两个应用程序中都设置了machineKey标记,并使用验证密钥和解密密钥 然后,对于身份验证标签,我在子应用程序中有以下内容(出于隐私考虑,我已将实际父应用程序的url替换为“parentApp”): 在我们切换到.NET4.0之前,它曾经工作得非常好。有人能

我有一个父web应用程序和一个子web应用程序。我在他们之间使用单点登录。子应用程序应该将匿名用户重定向到父应用程序的登录页面,我们刚刚将这两个应用程序都更新到.net 4.0 framework,现在SSO不再工作

设置如下所示。我在两个应用程序中都设置了machineKey标记,并使用验证密钥和解密密钥

然后,对于身份验证标签,我在子应用程序中有以下内容(出于隐私考虑,我已将实际父应用程序的url替换为“parentApp”):


在我们切换到.NET4.0之前,它曾经工作得非常好。有人能解释一下为什么这不再有效吗?它不会重定向,也不会在子站点上进行身份验证,即使我手动转到父应用程序登录页面并登录


编辑:我们从未在machine.config中设置任何内容。machineKey标记应该在web.config文件中设置。

您确定这两个应用程序都在.NET 4.0下运行吗?您可能希望浏览本文并仔细检查它们是否:

本文简要介绍了.NET 4.0中的突破性变化,听起来您可能会遇到:

(请参阅:默认哈希算法现在是HMACSHA256)

您可以尝试使用2.0兼容的设置运行,以查看这是否解决了问题

<authentication mode="Forms">
            <forms name=".SSOAuth" loginUrl="parentApp/Login.aspx" path="/" protection="All"/>
        </authentication>
        <sessionState mode="InProc" cookieless="false" timeout="30"/>
        <authorization>
            <!--<deny users="?"/>
            <allow users="*"/>-->
        </authorization>