asp.net – 同一Web服务器上的跨应用程序的身份验证/登录问题| IIS 7.5安装

在同一台服务器上设置了两个应用程序,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如何存储在注册表中.

点赞