“System.Web.HttpException:无法验证数据”错误在VS Development Server中但在IIS中没有

时间:2012-01-25 20:52:13

标签: asp.net visual-studio-2010 iis

我在Windows 7 64位开发框中使用Visual Studio 2010 SP1。我的asp.net在框上使用IIS时运行正常,但是当我切换到使用Visual Studio开发服务器时,我在此行中遇到异常“System.Web.HttpException:无法验证数据”(在global.asax中的Application_AuthenticateRequest事件中)的.cs):

FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

为什么使用内部Web服务器时会失败?

3 个答案:

答案 0 :(得分:17)

切换服务器后尝试删除Cookie。两台服务器都有自己的配置,可能还有自己的decryption key,表单身份验证cookie已加密和解密。因此,如果您仍然使用IIS加密cookie,则切换项目以使用内置开发服务器并点击该站点,该服务器无法解密cookie。

如果将解密密钥放在web.config中,则可以防止此问题:

<machineKey decryptionKey="..." />

答案 1 :(得分:0)

此错误还有另一个原因。如果Web.config文件中的MachineKey条目以

结尾
xmlns=""

然后你也会遇到这个错误。

答案 2 :(得分:0)

我使用了@Michiel van Oosterhout的方法,但它没有用。然而,我补充说:

def Team1(Team1Name,Team1Point):
    text = large_font.render(str(Team1Name)+": " + str(Team1Point), True, white)
    gameDisplay.blit(text, [10,10])

现在可行。