Jus*_*son 1 .net asp.net forms-authentication
我有一个带有2.0应用程序的.NET 4.0应用程序作为孩子.Web应用程序不在多服务器环境中; 只有一台服务器参与提供这些请求.两个应用程序都使用自定义身份验证,两个应用程序具有相同的machineKey
属性和值 当我访问2.0应用程序时,事件日志显示以下消息:
Event code: 4005
Event message: Forms authentication failed for the request. Reason: The ticket supplied was invalid.
Event time: 12/2/2011 11:36:49 AM
Event time (UTC): 12/2/2011 5:36:49 PM
Event ID: 2068ad6957964f75885301fc2b58ddfe
Event sequence: 2
Event occurrence: 1
Event detail code: 50201
Run Code Online (Sandbox Code Playgroud)
我尝试ticketCompatibilityMode
在Web.config中的forms元素上将属性设置为Framework20,但这并没有解决问题.由于此错误,用户未被授权,因此通常的对象(HttpContext)没有填充用户信息.
有谁知道如何修复此错误,以便身份验证适用于2.0应用程序?(顺便说一下,我的确计划将2.0应用程序升级到4.0,但此时不能完成此卡)
如果有人遇到同样的问题,我可以通过<appSettings>
在我的.NET 2.0应用程序的Web.config部分添加一些条目来修复此错误.添加的条目是:
<add key="aspnet:UseLegacyEncryption" value="true" />
<add key="aspnet:UseLegacyMachineKeyEncryption" value="true" />
Run Code Online (Sandbox Code Playgroud)
编辑(2012-05-04):在服务器上安装安全公告MS11-100后,2.0应用程序再次验证了身份验证.将以下内容添加到4.0应用程序的Web.config中修复了以下问题:
<add key="aspnet:UseLegacyFormsAuthenticationTicketCompatibility" value="true" />
Run Code Online (Sandbox Code Playgroud)