我在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服务器时会失败?
答案 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])
现在可行。