公司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. Galgame引擎编写,实现对话文本显示

    class cTalk { public: cTalk(); ~cTalk(); void Init(); void Shutdown(); void SetSpeed(int speed); voi ...

  2. MySql避免全表扫描

    对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引: .尝试下面的技巧以避免优化器错选了表扫描: · 使用ANALYZE TABLE tbl_name为 ...

  3. git 秘钥的生成

    在命令查看自己的秘钥还是公钥 cat .ssh/id_rsa.pub/cat .ssh/id_rsa

  4. NSAutoreleasePool' is unavailable: not avail

    NSAutoreleasePool' is unavailable: not available in automatic reference counting mode 这我就纠结了,对着书敲都出问 ...

  5. 机器人api(图灵机器人)

    图灵机器人,是基于自然语言解析的智能机器人,已经免费开放了机器人api接口,有需求的同学能够去试试. 图灵机器人官网:http://www.tuling123.com 图灵机器人体验:http://w ...

  6. C语言中怎么求动态数组大小

    先来个简单的样例 int a[] = {1,2,3}; int arr_len = 0; arr_len = sizeof(a)/sizeof(int); 解释:sizeof() keyword是求出 ...

  7. MVC - 基础

    什么是MVC模式 传统的WebForm发展到如今出现不少的缺陷 比如为了解决Http的无状态 WebForm模式使用了ViewState来保存客户端和服务端数据 过量的使用则会造成页面臃肿不堪 大量服 ...

  8. netty Architectural Overview --reference

    reference from:http://docs.jboss.org/netty/3.1/guide/html/architecture.html 2.1. Rich Buffer Data St ...

  9. Multipart Upload with HttpClient 4--reference

    by Eugen Paraschiv on May 23, 2014 in HttpClient http://www.baeldung.com/httpclient-multipart-upload ...

  10. mysql数据库时间、字符串类型互转

    时间格式转换: select DATE_FORMAT(NOW(),"%y-%m-%d %H:%i:%s") 字符串转时间: select STR_TO_DATE("201 ...