在同一台服务器上设置了两个应用程序,GamesPlayLogin& GamesPlay. [
Windows server 2008 R2]
因此,一旦用户使用登录应用程序(GamesPlayLogin)进行身份验证,
<authentication mode="Forms">
<forms name="GamesLoginCheck" loginUrl="/GamesPlayLogin/Default.aspx"
timeout="240" path="/" slidingExpiration="true" />
</authentication>
它们被重定向到应用程序:GamesPlay.但是在进行重定向时,身份验证每次都会失败,用户会被重定向回第一个应用程序:GamesPlayLogin.
根据需求决策,这两个应用程序设置为在不同的应用程序池中运行,可能是为了避免在影响另一个应用程序的某个应用程序中出现问题.我们正在使用自动生成密钥.
此外,我们确保通过检查IIS(版本7.5)来取消选中“为每个应用程序生成唯一键”框.
事件日志显示::
Event message: Forms authentication failed for the request
Reason: The ticket supplied was invalid
我看到了许多与上述事件日志相关的解决方案,但没有成功.首先,我的应用程序在SAME WEB SERVER上,并且使用Autogenerated密钥的相同设置工作较早(Windows server 2008 ,,直到我们最近迁移到Windows Server 2008 R2).
我仍然在寻找之前相同设置工作原因(Windows server 2008)的原因,但最近才转向Windows 2008 R2.
最佳答案 IIS 7和…之间存在差异. 7.5应用程序池的默认标识已从网络服务更改为自动生成的AppPool标识.
此外,这两个应用程序池在不同的用户下运行.
因为,autogenkey是基于每个用户存储的,并且这两个进程在不同的用户下运行,它们将具有不同的自动密钥,这最终解释了为什么我们在这里看到问题.
经过the DEV’S Blog,终于证明了很多帮助.
最后,考虑到我们的要求,我们将应用程序池的标识更改为每个应用程序池的同一用户.
另外,this blog post by Kev描述了autogenkey如何存储在注册表中.