1

我们有两个网站。一个 ASP.NET MVC 3 和一个 ASP.NET 4 Web 窗体。每个网站都有自己的 .NET 4 集成应用程序池,它在“应用程序池标识”用户权限下运行。

我们要做的是在两个站点之间共享 ASP.NET 身份验证 cookie(请继续阅读!)。我们为两个站点提供了相同的机器密钥(在 web.config 文件中),具有相同的加密类型和与 .NET 2 兼容的 cookie 等,以及两个站点的相同应用程序名称。因此,当用户登录到一个站点时,身份验证 cookie 会与另一个站点共享,因此用户在登录到另一个站点时不必登录到站点。

这在多台开发机器以及我们的登台和实时服务器上完美运行。但是,它在客户端的生产服务器上不起作用!我检查了服务器的事件日志,发现只有这个错误消息:“表单身份验证失败:提供的票证无效!”。

我阅读了数十篇博客文章和论坛讨论,例如以下两个,但没有任何帮助:

http://blogs.msdn.com/b/tess/archive/2009/09/16/forms-authentication-fails-after-installing-iis-7-5.aspx

http://weblogs.asp.net/scottgu/archive/2010/09/30/asp-net-security-fix-now-on-windows-update.aspx

我还将这两行放在 web.config 中(在<appSettings>

<add key="aspnet:UseLegacyEncryption" value="true" />
<add key="aspnet:UseLegacyMachineKeyEncryption" value="true" />

我还设置了应用程序。两个应用程序的池用户。池到 Net_Work 服务,取消选中 IIS/Machine 密钥等下的“自动生成密钥”,但 ASP.NET 仍然拒绝身份验证票。

有人可以帮我吗?这是服务器的配置:

IIS:版本 7.5 Windows:2008 RS sp 1 64x

4

0 回答 0