2010-09-20 32 views
3

我有一个父级Web应用程序和一个子Web应用程序。我在他们之间使用单点登录。子应用程序应该将匿名用户重定向到父应用程序的登录页面我们只更新了.net 4.0框架,现在SSO不再工作。如何使用asp.net框架4.0进行单点登录

设置如下。我有两个应用程序中使用验证密钥和解密密钥设置的machineKey标签。

那么,对于认证标签我有在儿童的应用程序如下(我已经取代实际父应用程序的URL以“parentApp”隐私):

<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> 

这个曾经完全正常工作,我们切换前到.net 4.0。任何人都可以请说明为什么这不起作用了吗?它不重定向,即使我手动进入父应用程序登录页面并登录,它也不会在子站点上进行身份验证。

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

回答

0

您确定这两个应用程序都在.NET 4.0下运行吗?你可能想通过这篇文章,并仔细检查运行,他们是:

http://msdn.microsoft.com/en-us/library/dd483478(v=VS.100).aspx

本文简要介绍了在.NET 4.0中,它听起来像你的重大更改可能运行到:

http://www.asp.net/whitepapers/aspnet4/breaking-changes (参见:默认散列算法现在HMACSHA256)

http://msdn.microsoft.com/en-us/library/system.web.configuration.machinekeysection.compatibilitymode(v=vs.100).aspx

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