公司BP&IT项目组.从上上个月成立开始开发BP&IT软件.这个月开始测试我悲剧的发现他尽然不支持我电脑上的IE11.半个多月还没解决

我们先来分析下原因首页 登陆页面正常浏览 http://hr.bingjun.cc/

登陆后网址呈现 http://hr.bingjun.cc/(F(0-MEj-fnv8v-hWRGI2rOhfQ_0SZjQAnMEBs5P1DKcEhwdX-TTu8TAZ_H6HVGorBM-TaTm4zK_DCSdO8gvqOXWCoou4YJIVziHJ1PC9hke7w1))/Default.aspx

点击任何网页任意一个链接

键 值
Referer http://hr.bingjun.cc/MyTask/MyTaskPage.aspx

就302 http://hr.bingjun.cc/

对网址http://hr.bingjun.cc/(F(0-MEj-fnv8v-hWRGI2rOhfQ_0SZjQAnMEBs5P1DKcEhwdX-TTu8TAZ_H6HVGorBM-TaTm4zK_DCSdO8gvqOXWCoou4YJIVziHJ1PC9hke7w1))/Default.aspx

分析我们可以发现可以轻易发现.这是一个使用无Cookie模式的网址链接.并且F打头可以判断我们的BP&IT项目组使用了Forms表单验证

而跳转页面却是一个http://hr.bingjun.cc/MyTask/MyTaskPage.aspx不带无Cookie URL的页面这样就导致了Cookie丢失就更别论依靠Cookie工作的 Session 和 登陆状态了

为什么页面跳转后却没有带上CookieURL了 我想是因为他们的代码没有使用 服务器路径“~/” 所导致 因为只有使用服务器路径ASP.NET才会帮我们自动的吧CookieUrl段给带上

发现后立即询问BP&IT项目组为什么我的IE11无法使用内部网站(回答我是微软的BUG)

尽然是这样那根据我所掌握的知识能导致此问题的BUG 应该是ASP.NET把 IE11识别为无Cookie 浏览器了

那这样的话解决办法就很多 首先从服务器级别讲起

我们知道ASP.NET识别浏览器是不是无Cookie的是通过本身的一个库来识别的那我们也可以往这个库里加点东西

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers

打开此目录可以发现下面后很多文件没错这就是ASP.NET用来识别浏览器的库了打开ie.browser

添加一个 browser 配置节点

 

<browser id="IE11" parentID="Mozilla">
        <identification>
          <userAgent match="Trident\/7.0; rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" />
          <userAgent nonMatch="IEMobile" />
        </identification>
        <capture>
        <userAgent match="Trident/(?'layoutVersion'\d+)" />
       </capture>
       <capabilities>
         <capability name="browser"              value="IE" />
         <capability name="layoutEngine"         value="Trident" />
         <capability name="layoutEngineVersion"  value="${layoutVersion}" />
         <capability name="extra"                value="${extra}" />
         <capability name="isColor"              value="true" />
         <capability name="letters"              value="${letters}" />
         <capability name="majorversion"         value="${major}" />
         <capability name="minorversion"         value="${minor}" />
         <capability name=" />
         <capability name="type"                 value="IE${major}" />
         <capability name="version"              value="${version}" />
       </capabilities>
     </browser>

这样该服务器上v4.0.30319版本下的所有站点此问题都算是解决了

2 BP&IT的还说过他们找到过在服务器上改配置文件的解决方法他们不敢用 服务器上站点太多怕崩溃 哎~~不知道怎么说他们

不知道ASP.NET Config配置文件 站点的都可以追加或覆盖全局的吗?(PS:在上面那个路径的Config下的都是全局配置)

既然是可以覆盖那在项目里新建个浏览器文件不就OK了 至于怎么新建浏览器文件这个应该不用我说了吧(博客园的图片尽然要外链要不我加几个步骤进来了)

3 如果这也闲麻烦或者怕以后还会有类似的不识别的浏览器那就修改cookieless的值吧

打开web.config 添加或修改System.web下的节点

<sessionState mode="InProc" cookieless="UseUri" customProvider="DefaultSessionProvider">
      <providers>
        <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
      </providers>
    </sessionState>
    <authentication mode="Forms">
      <forms cookieless=" defaultUrl="~/" />
    </authentication>

配置 cookieless="UseCookies" 这也所有的浏览器不管浏览器支不支持Cookie 都使用浏览器Cookie 而不是URLCookie(话说你们见过不支持Cookie的浏览器吗?PS:我么见过)

到这儿我想也差不多了吧

PS:IE11出现 ——_doPostBack未定义 也是浏览器不识别的问题哦 不过不是以为浏览器不识别Cookie而是以为他不支持Javascript通过最开始的2个方法一样的解决上的重点是在配置中加入如下2句

<capability name="javascript"           value="true" />
<capability name="cookies"              value="true" />

(PS:你们见过不支持Javascript的浏览器吗?我没见过..这微软..搞毛!默认成都支持多好不支持才写配置文件不很好嘛)

技术交流群

工作中的问题解决 -- (win2003 asp.net) Session和带页面回传的方法无法正常使用解决方案的更多相关文章

  1. ASP.NET十分有用的页面间传值方法

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交,   <form action= "target.aspx" method = "post&qu ...

  2. ASP.NET十分有用的页面间传值方法(转)

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交,   <form action= "target.aspx" method = "post&qu ...

  3. ASP.NET几种清除页面缓存的方法

    在asp.net中使用模式dialog时,你会发现每次打开的页面都是相同的内容,页面内容并没有刷新,这是缓存的原因造成的, 解决方法如下: 第一种是ASP.NET清除页面缓存 Response.Buf ...

  4. [ASP.NET] Session的了解

    ASP.NET Session的使用当中我们会遇到很多的问题,那么这里我们来谈下经常出现的一些常用ASP.NET Session的理解: ASP.NET Session的七点认识之一 对于值类型的变量 ...

  5. Python3 与 C# 面向对象之~继承与多态 Python3 与 C# 面向对象之~封装 Python3 与 NetCore 基础语法对比(Function专栏) [C#]C#时间日期操作 [C#]C#中字符串的操作 [ASP.NET]NTKO插件使用常见问题 我对C#的认知。

    Python3 与 C# 面向对象之-继承与多态   文章汇总:https://www.cnblogs.com/dotnetcrazy/p/9160514.html 目录: 2.继承 ¶ 2.1.单继 ...

  6. 总结一下工作中遇到的NPOI以及在ASP.NET MVC中的使用

    1.前言 相信大家在工作中经常要遇到一些导入导出Execl操作.学习贵在分享,分享使人快乐,园子里的前辈已经有很多好的文章,鄙人也是能力有限,在这里把这些好的文章总结,方便以后再工作中使用. NPOI ...

  7. ASP.NET Session丢失的情况

    正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. 现在我就把原 ...

  8. ASP.NET Session丢失的解决方案

    正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的.现在我就把原因 ...

  9. ASP.NET Session丢失问题原因及解决方案

    正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. ASP.NE ...

随机推荐

  1. bzoj3998 [TJOI2015]弦论(SAM)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3998 [题意] 询问排名第k的子串是谁,0代表相同子串不同位置算作相同,1代表相同子串 ...

  2. Educational Codeforces Round 9 -- A - Grandma Laura and Apples

    题意: 外祖母要卖苹果,(有很多但不知道数量),最终所有苹果都卖光了! 有n个人买苹果,如果那个人是half,他就买所有苹果的一半,如果那个人是halfplus,则他买当前苹果数量的一半,Laura还 ...

  3. 【ACM/ICPC2013】POJ基础图论题简析(一)

    前言:昨天contest4的惨败经历让我懂得要想在ACM领域拿到好成绩,必须要真正的下苦功夫,不能再浪了!暑假还有一半,还有时间!今天找了POJ的分类题库,做了简单题目类型中的图论专题,还剩下二分图和 ...

  4. hdoj 4183 Pahom on Water

    Pahom on Water Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  5. Properties操作

    import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream; ...

  6. 第三步 用Jena自定义完成数据库到RDF的映射

    第三步 用Jena自定义完成数据库到RDF的映射 2013年10月17日 8:53:27 这一步用Jena编程,终于能做点有技术含量的事情了.这个工作计划本周内完成,下周一好给老师一个交待. 目标:把 ...

  7. Webview 中 Javascript 无法调用 Java 对象

    [问题产生] Webview 通过 addjavascriptInterface 传递对象给前端,一切正常.但是 Android官方已提醒此功能是有安全风险,改用 safe-java-js-webvi ...

  8. Sql Server2005 Transact-SQL 窗口函数(OVER)

    1.简介: SQL Server 2005中的窗口函数帮助你迅速查看不同级别的聚合,通过它可以非常方便地累计总数.移动平均值.以及执行其它计算.窗口函数功能非常强大,使用起来也十分容易.可以使用这个技 ...

  9. mysql监控管理工具--innotop

    https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/innotop/innotop-1.9. ...

  10. oc中的类学习笔记1

    1.oc中的类和构造方法 NSAutoreleasePool * pool =[[NSAutoreleasePool alloc] init]; NSAutoreleasePool是一个类,alloc ...