我们有两个网站。一个ASP.NET MVC 3和一个ASP.NET 4 Web窗体。每个网站都有自己的.NET 4集成应用程序池,它在"应用程序池标识"用户的权利。
我们想要做的是在两个站点之间共享ASP.NET身份验证cookie(请继续阅读!)。我们为两个站点提供了相同的机器密钥(在web.config文件中),具有相同的加密类型和与.NET 2兼容的cookie等,以及两个站点的相同应用程序名称。因此,当用户登录到一个站点时,身份验证cookie将与另一个站点共享,因此用户登录到另一个站点时无需登录站点。
这完美适用于多台开发机器以及我们的暂存和实时服务器。但是,它不适用于客户端的生产服务器!我查看了服务器的事件日志,但我发现此错误消息:"表单身份验证失败:提供的票证无效!"。
我阅读了几篇博客文章和论坛讨论,例如下面的两篇,但没有帮助:
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服务,取消选中&#34;自动生成密钥&#34;在IIS /机器密钥等下,但ASP.NET仍拒绝验证票据。
有人可以帮我这个吗?这是服务器的配置:
IIS:7.5版 Windows:2008 RS sp 1 64x