基于表单的身份验证在.Net 2.0和.Net 4.0应用程序之间无效

ms0*_*007 6 asp.net authentication iis

我有几个Web应用程序在带有IIS 6.0的Windows Server 2003上运行.

这些应用程序在Asp.net 2.0下运行.

最近我安装了一个基于asp.net 4的MVC 3 Web应用程序.表单票证未在此新应用程序中重新定位.

我在使用此链接创建的不同asp.net版本的machine.config文件中具有相同的machineKey设置:http://aspnetresources.com/tools/machineKey

登录Web应用程序中的配置如下所示:

  <authentication mode="Forms">
    <forms name=".WEBAUTH"
         loginUrl="login.aspx"
         protection="None"
         slidingExpiration="true"
         enableCrossAppRedirects="false"     
         timeout="43200"     
         path="/" />
  </authentication>
Run Code Online (Sandbox Code Playgroud)

因此,mvc应用程序的配置是:

  <authentication mode="Forms">
    <forms name=".WEBAUTH"
         loginUrl="http://path2theloginapp/login.aspx"
         protection="None"
         slidingExpiration="true"
         enableCrossAppRedirects="false"     
         timeout="43200"     
         path="/" />
  </authentication>

  <authorization>
    <deny users="?" />
    <allow users="*" />
  </authorization>
Run Code Online (Sandbox Code Playgroud)

登录有效,但mvc应用程序始终重定向回登录页面.

现在,如果我将IIS配置中的登录Web应用程序的asp.net版本更改为asp.net 4.0,它可以正常工作.但是,然后在asp.net 2上运行的所有其他应用程序都无法运行.

有没有人在类似的情况下解决了基于表单的身份验证?

ms0*_*007 5

我不得不走很远的路,并与微软开了一个支持案例.

事实证明,Microsoft安全公告MS11-100的相关安全更新丢失了:

http://technet.microsoft.com/en-us/security/bulletin/ms11-100.
选择您的操作系统并安装.Net 2.0和4.0的更新.

这将更新固定的基于表单的身份验证,而无需重新配置所涉及的Web应用程