代码之家  ›  专栏  ›  技术社区  ›  KallDrexx

当主机名中有下划线时,表单身份验证无法识别为在IE下登录。

  •  5
  • KallDrexx  · 技术社区  · 16 年前

    在我的ASP.NET WebForms应用程序中,我使用的是连接到我的数据库(与标准成员资格提供程序)中的简单表单身份验证。一切正常,我可以登入,登出,获得角色等…

    但是,在将我的站点部署到Intranet IIS服务器之后,我注意到IE无法进行身份验证。登录的实际身份验证过程可以工作(正如它告诉您密码/用户名错误时所做的那样),但在身份验证完成后,它会声明您没有登录。

    这只在本地部署的IIS环境中有效,而在我的VS环境中,一切在IE中都可以正常工作。而在部署的IIS Chrome和Firefox中,一切都可以正常工作。

    我唯一能说的是,似乎IE没有获取或保存身份验证cookie。这与IE设置无关,因为我的IE8设置为接受所有cookie,我在同事的IE8机器和另一台具有相同结果的IE7上进行了测试。

    我的web.config正在使用以下设置:

    <authentication mode="Forms" >
      <forms cookieless="UseCookies" />
    </authentication>  
    

    是否至少有人知道我从哪里开始调试这个问题?

    谢谢,


    编辑 :由于我的Web服务器不能很好地使用URL身份验证,我现在被迫解决这个问题。

    我使用了fiddler,发现iis7在IE中不会向我发送任何cookies。头中没有cookies。但是,当将站点提供给Mozilla和Chrome浏览器时,cookie在头文件中是正确的。我不知道为什么……


    编辑2 :作为旁注,当我直接登录到Web服务器时,如果我转到 Http://localhost/ 我会把饼干送去的,但是如果我去的话 http://qa_build/ (这是服务器的计算机名)IIS不会将cookie发送到IE。

    2 回复  |  直到 12 年前
        1
  •  12
  •   EricLaw    14 年前

    终于找到了答案。如果域中有下划线,Internet Explorer将不会存储cookie。将计算机的名称更改为qabuild将其修复。

    http://support.microsoft.com/kb/316112

        2
  •  0
  •   Chris Mullins    16 年前

    页面上是否有其他与登录无关的提交按钮?

    我在尝试登录一次时遇到了类似的问题,发现它只在我点击Enter而不是点击Login按钮时发生,这是由另一个点击默认按钮的按钮引起的。它将进行身份验证,但不会给我任何用户角色。