基于表单的身份验证在 .Net 2.0 和 .Net 4.0 应用程序之间不起作用
我有几个 Web 应用程序在带有 IIS 6.0 的 Windows Server 2003 上运行。
这些应用程序在 Asp.net 2.0 下运行。
最近我安装了一个 MVC 3 Web 应用程序,它本质上是基于 asp.net 4 的。此新应用程序无法识别表单票证。
我在使用此链接创建的不同 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>
相应地,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>
登录有效,但mvc应用程序始终重定向回登录页。
现在,如果我将 IIS 配置中登录 Web 应用程序的 asp.net 版本更改为 asp.net 4.0,它就可以工作。但随后在 ASP.NET 2 上运行的所有其他应用程序都不再起作用。
有人在类似情况下解决过基于表单的身份验证吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不得不走很长的路,向微软提出了支持案例。
事实证明,Microsoft 安全公告 MS11-100 中的相关安全更新丢失了:
http://technet.microsoft.com/en-us/security/bulletin/ms11-100">http:// /technet.microsoft.com/en-us/security/bulletin/ms11-100。
选择您的操作系统并安装 .Net 2.0 和 4.0 的更新。
这更新了固定的基于表单的身份验证,而无需重新配置所涉及的 Web 应用程序。
I had to go the long way and opened a support case with Microsoft.
As it turned out, the relevant security updates from Microsoft Security Bulletin MS11-100 were missing:
http://technet.microsoft.com/en-us/security/bulletin/ms11-100.
Choose your operatingsystem and install the updates for .Net 2.0 and 4.0.
This updates fixed forms-based authentication without reconfiguration of the involved web applications.
这是 ASP.NET 4.0 中的重大更改之一:
It's one of the breaking changes in ASP.NET 4.0: