工作中的问题解决 -- (win2003 asp.net) Session和带页面回传的方法无法正常使用解决方案
公司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和带页面回传的方法无法正常使用解决方案的更多相关文章
- ASP.NET十分有用的页面间传值方法
一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交, <form action= "target.aspx" method = "post&qu ...
- ASP.NET十分有用的页面间传值方法(转)
一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交, <form action= "target.aspx" method = "post&qu ...
- ASP.NET几种清除页面缓存的方法
在asp.net中使用模式dialog时,你会发现每次打开的页面都是相同的内容,页面内容并没有刷新,这是缓存的原因造成的, 解决方法如下: 第一种是ASP.NET清除页面缓存 Response.Buf ...
- [ASP.NET] Session的了解
ASP.NET Session的使用当中我们会遇到很多的问题,那么这里我们来谈下经常出现的一些常用ASP.NET Session的理解: ASP.NET Session的七点认识之一 对于值类型的变量 ...
- 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.单继 ...
- 总结一下工作中遇到的NPOI以及在ASP.NET MVC中的使用
1.前言 相信大家在工作中经常要遇到一些导入导出Execl操作.学习贵在分享,分享使人快乐,园子里的前辈已经有很多好的文章,鄙人也是能力有限,在这里把这些好的文章总结,方便以后再工作中使用. NPOI ...
- ASP.NET Session丢失的情况
正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. 现在我就把原 ...
- ASP.NET Session丢失的解决方案
正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的.现在我就把原因 ...
- ASP.NET Session丢失问题原因及解决方案
正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. ASP.NE ...
随机推荐
- codevs 3160 最长公共子串(SAM)
3160 最长公共子串 题目描述 Description 给出两个由小写字母组成的字符串,求它们的最长公共子串的长度. 输入描述 Input Description 读入两个字符串 输出描述 Ou ...
- Android 多线程 异步加载
Android 应用中需要显示网络图片时,图片的加载过程较为耗时,因此加载过程使用线程池进行管理, 同时使用本地缓存保存图片(当来回滚动ListView时,调用缓存的图片),这样加载和显示图片较为友好 ...
- 【Java基础】一个有意思的泛型方法Arrays.asList(T... a)
总结 利用Arrays.asList方法返回的List是不允许add和remove的,这种list的长度不可变,因为底层依然是写数组. Arrays.asList的返回值是调用是传入T类型的List, ...
- HW4.3
public class Solution { public static void main(String[] args) { final double POUND_PER_KILOGRAM = 2 ...
- POJ2689 - Prime Distance(素数筛选)
题目大意 给定两个数L和U,要求你求出在区间[L, U] 内所有素数中,相邻两个素数差值最小的两个素数C1和C2以及相邻两个素数差值最大的两个素数D1和D2,并且L-U<1,000,000 题解 ...
- POJ2407–Relatives(欧拉函数)
题目大意 给定一个正整数n,要求你求出所有小于n的正整数当中与n互质的数的个数 题解 欧拉函数模板题~~~因为n过大~~~所以直接用公式求 代码: #include<iostream> # ...
- Java时间转换类实现
Java时间类型非常的差,首先版本问题,本人使用java在Android平台开发.很多Data类的方法已经不提倡使用,一个时间,居然要使用Calendar.DateFormat等类共同编码,非常麻烦. ...
- servlet三大作用域:request,session,application
javaweb开发中Servlet三大域对象的应用(request.session.application(ServletContext)). 1. request request是表示一个请求,只要 ...
- WPF WebBrowser
XAML <Window x:Class="WpfApplication5.Window1" xmlns="http://schemas.microso ...
- Python重写C语言程序100例--Part1
''' [程序1] 题目:有1.2.3.4个数字,能组成多少个互不同样且无反复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成全部的排列后再去 掉不满足条件 ...