C# FormsAuthentication可在除IE以外的所有浏览器中工作

C# FormsAuthentication可在除IE以外的所有浏览器中工作,c#,asp.net,internet-explorer,forms-authentication,C#,Asp.net,Internet Explorer,Forms Authentication,这当然是一个奇怪的 我有一个ASP.net 4.0 C#网站,它有一个使用FormsAuthentication处理用户访问的登录页面。在整个站点中还有一些代码,每当会话超时或出现其他要求用户再次登录的情况时,这些代码会引导用户返回登录页面。这些都是我以前做过十几次的基本动作 我知道整个过程都在运行,因为我已经能够在我尝试的每个浏览器上通过VS2010登录到该网站。当它在使用Chrome、Firefox、Safari(Mac)和两款手机浏览器的开发服务器上运行时,它也可以非常好地工作。我唯一遇到

这当然是一个奇怪的

我有一个ASP.net 4.0 C#网站,它有一个使用FormsAuthentication处理用户访问的登录页面。在整个站点中还有一些代码,每当会话超时或出现其他要求用户再次登录的情况时,这些代码会引导用户返回登录页面。这些都是我以前做过十几次的基本动作

我知道整个过程都在运行,因为我已经能够在我尝试的每个浏览器上通过VS2010登录到该网站。当它在使用Chrome、Firefox、Safari(Mac)和两款手机浏览器的开发服务器上运行时,它也可以非常好地工作。我唯一遇到问题的是Internet Explorer

现在,考虑到它可以在IE本地工作,但不能在服务器上工作,这一个调试有点困难。事实上,它也可以在服务器上的其他浏览器中工作,这也排除了服务器配置问题

我所做的尝试是在我的FormsAuthentication.RedirectToLogin(“WhateverPage=WhateOverSectionOfCode”)中添加一个查询字符串,以找出哪里可能出错;尝试解决这个问题。问题是,当我在IE中运行该站点时,它从未附加该查询字符串,这使我相信它从未命中任何“RedirectToLogin”行

我知道它会进行身份验证,因为更新数据库中最后一个登录时间戳的代码只有在用户经过身份验证时才会触发。看起来好像“RedirectFromLogin”行确实出现了,并在web.config中找到了正确的条目……它实际上可能是在重定向我,但即使它出现了,它也总是将我返回到登录屏幕

我已经经历了所有可能导致这种情况的真正基本的ID-10T错误(heh):提高安全设置、禁用cookie等,但我在多台机器上得到了相同的结果

我真的有点不知所措,不知道下一步该检查什么。我已经有另外两组人关注代码了,但是他们找不出任何原因来解释为什么会发生这种情况。如果有人对可能发生的事情有任何建议,我很乐意听听


谢谢

我想这是关于饼干的

是否在web.config中设置了域属性

<authentication mode="Forms">
  <forms loginUrl="~/login.aspx" name="cookiename" domain="domain.com" cookieless="UseCookies" slidingExpiration="true" timeout="60"/>
</authentication>

我知道这张票证有点旧,但显然IE无法在名称中带有下划线的域上设置表单身份验证。因此,如果问题出现在开发服务器上,比如说Dev_XP,IE将无法设置身份验证cookie

我就是这样。以下是链接:


这是一篇KB的文章,概述了这个问题

我也有同样的问题,但除了Chrome之外,其他浏览器都有。 奇怪的是,当所有这些浏览器都在本地(在运行服务的同一台计算机上)试用时,一切正常。 当我远程连接时,只有Chrome可以工作。Firefox和IE每次都会将我重定向回登录页面,尽管用户已通过身份验证——和您的用户一样,数据库登录时间戳已更新。 但是我还有开发服务器,位于另一个网络中,连接到这个网络花费的时间更少,这里有三个浏览器也可以正常工作。
所以我认为问题在于IIS设置,这在real和developer服务器上可能不同,或者可能是重定向和线程中的问题,这会创建会话。我找到了一些。这是关于ASP网络表单的。看见如果你解决了这个问题,请告诉我

你正在使用什么版本的IE;具体来说,如果您使用的是IE9,那么您可以使用开发人员工具来检查requeust/response头。否则,您将需要类似Fiddler的东西,但我认为这正是您希望看到的。用户返回登录页面后是否仍然经过身份验证?@Coding Gorilla-我将尝试Fiddler。我知道我已经在IE8和IE7中尝试过了,但都没用。@JamesJohnson-听起来很奇怪,看起来好像是这样。@CodingGorilla-我查过Fiddler。我注意到的一个大区别是,我在IE上获得了HTTP 302状态。有什么想法吗?没有,我没有,但我可以尝试一下。嗯,我尝试了一下……仍然没有运气。你不知道我花了多少时间与我们的开发团队一起解决这个问题。我最初不愿意在子域中使用下划线来配置他们的站点,这让我觉得更有趣。