none
IE的问题?服务器的问题?程序的问题?求帮助,要不就疯了.............. RRS feed

  • 问题

  • web项目,在IE下开放测试,本地没有任何问题。投入生产环境,就出问题了。问题如下:用IE8、firefox等可以登录网站,IE11不启用兼容模式登录没有反应。

    最初认为在页面上设置meta可以解决问题:<meta http-equiv="X-UA-Compatible" content="IE=10,IE=9,IE=8" />,但实际测试无效果

    然后跟踪服务器身份验证的过程,网站在身份验证后将验证票发到了客户端(IE11)。IE每次刷新都会回送验证票。这些流程都没问题,但是在网站的验证模块Global.asax中的

    void Application_AuthenticateRequest(object sender, EventArgs e){

      HttpApplication app = (HttpApplication)sender;
                HttpContext Ctx = app.Context;
                if (Ctx.Request.IsAuthenticated == true) //这个在服务器恒为false,票发了也用。但是本机测试正常.....
                {

                }

    IE的兼容性,影响了网站的验证呀!!!怎么会这样,求解。。。。。。。。。苦闷


    • 已编辑 tomcat008 2014年11月7日 0:00 增加描述
    2014年11月6日 15:16

答案

全部回复

  • 有没有人关注一下?
    2014年11月7日 3:20
  • 你好,

    >>Ctx.Request.IsAuthenticated

    判断当前请求是否已经过身份验证,主要是验证 User.Identity.IsAuthenticated 和判断User 或者User.Identity  是否为null。

    我建议你在您登录的代码中,加入下面的代码:

    FormsAuthentication.SetAuthCookie(userId, true);

    我建议你参考下面的链接,检查下是否在验证上有错误:
    http://www.cnblogs.com/qianlifeng/archive/2010/12/03/1895801.html



    2014年11月7日 5:19
  • 这个地方已经通过下面,发票:

     FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, email, DateTime.Now, DateTime.Now.AddDays(1), true, role.ToString());

                        string cookieValue = FormsAuthentication.Encrypt(ticket);
                        HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieValue);

                        Response.Cookies.Set(cookie);

    ------------------------------------------------------------------------------------------------------------------------

    上面的代码在以前的程序都正常使用,本地测试也正常。可以成功发票与验证,但是在服务器客户端是IE11就有问题。

    其他的浏览器则正常。

    • 已编辑 tomcat008 2014年11月7日 10:13 说明
    2014年11月7日 10:10
  • 你好,

    建议将网页在兼容模式下运行,看看是否还是有异常信息

    2014年11月11日 2:56