C# FormsAuthentication在更改域后无法进行身份验证
我在试图协助的一个客户项目中遇到了一个有趣的FormsAuthentication问题。问题是:C# FormsAuthentication在更改域后无法进行身份验证,c#,sql-server-2008,iis-6,forms-authentication,windows-server-2003,C#,Sql Server 2008,Iis 6,Forms Authentication,Windows Server 2003,我在试图协助的一个客户项目中遇到了一个有趣的FormsAuthentication问题。问题是: web应用程序的域已从.companyA.com更改为.companyB.com,我设置了一个IIS重定向,将试图访问.companyA.com的任何人发送到.companyB.com。那很好用 现在我无法登录到该站点。我做了一些挖掘,发现web.config中定义了authCookie,所以我将authCookie域更改为match.companyB.com。我仍然无法登录 我做了更多的挖掘,发
- web应用程序的域已从.companyA.com更改为.companyB.com,我设置了一个IIS重定向,将试图访问.companyA.com的任何人发送到.companyB.com。那很好用
- 现在我无法登录到该站点。我做了一些挖掘,发现web.config中定义了authCookie,所以我将authCookie域更改为match.companyB.com。我仍然无法登录
- 我做了更多的挖掘,发现有一个SQL报表服务器设置。我将报表服务器配置文件中的域更改为match.companyB.com。仍然无法登录
编辑:好的,在进一步挖掘之后,我发现用户没有进行身份验证不是主要问题。连接到reporting service DB时出现问题,异常正在消失。谢天谢地,它出现在事件查看器中。不幸的是,这仍然给我留下了一些问题,我无法理解为什么SQL不再对我进行身份验证,以及更改域名如何可能导致这种情况。调试非常简单。只需获取任何http调试器(Fiddler即可)并运行您的应用程序。您将看到一个请求列表。只需注意设置auth cookie的响应,以及在连续请求中发生的情况 您可能会看到cookie已经设置好了,但以后会丢失。这可能是因为cookie是为域A发布的(您将在调试器中看到cookie的域),而浏览器没有将其传递到域B(浏览器应该这样做;它永远不会将cookie传递到其他域)
无论如何,http调试器在这里会有很大帮助。我正在使用firebug查看响应。仅创建了会话cookie,但它具有正确的域。似乎authCookie没有被创建,这毫无意义,因为我从未改变过任何逻辑。我不知道firebug显示了什么。100%确定的是,使用Fiddler。看起来它甚至还没有达到可以设置authCookie的程度。我想这是特定于域的,我必须自己弄清楚。你在哪个网站上进行身份验证?在web.config中更改域后,cookie域是否更改?我在web.config中更改了cookie域。我不确定这是否需要在其他地方改变。当前在站点上创建的Cookie都具有正确的域。