亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IE10、IE11 User-Agent 導致的 ASP.Net 網站無法寫入Cookie 問題

2019-11-17 01:36:40
字體:
來源:轉載
供稿:網友

IE10、IE11 User-Agent 導致的 asp.net 網站無法寫入Cookie 問題

  

  你是否遇到過當使用一個涉及到Cookie操作的網站或者管理系統時,IE 6、7、8、9下都跑的好好的,唯獨到了IE10、11這些高版本瀏覽器就不行了?好吧,這個問題碼農連續2天內遇到了2次。那么,我們就來看看,這個問題的前因后果。

  先說下這2次的使用場景,一次是在某頁面中,先存Cookie,然后再入庫記錄相關數據,但是發布到生產環境后,入庫操作沒有發生;后來通過打印日志發現問題卡在這里:

if (Request.Browser.Cookies)

  也就是說,在客戶端是IE10的環境下,這里返回False!納尼,IE10默認配置下不支持Cookie?微軟你玩我的吧。

  第二次是某地市的升級測試,在IE10的環境下,自服務網站登錄失敗;這個問題很奇怪,因為之前已經升級過多個地市了,IE10使用都正常。這極大的引起了碼農的興趣,由此引出了此文。

  描述完場景,我們就來分析分析。雖然直覺告訴碼農,可能是Cookie的讀取或寫入有問題,但畢竟直覺這玩意兒不靠譜,咱還是得用事實和證據說話。國際慣例,先抓個HTTP包瞧瞧:

上圖是IE10下登錄失敗時,服務端返回的HTTP響應頭;下圖是其它瀏覽器正常登錄時,服務端返回的HTTP響應頭,注意紅色框框標注部分;

導致問題的直接原因,很清晰了吧:服務器響應請求時,沒有回發 Set-Cookie 頭,沒有這個頭,客戶端瀏覽器就無法寫入Cookie。所以基于Form認證(在Cookie中會存入加密票據)的自服務網站,會無法登錄。

  這時,你可能會覺得奇怪了,為啥只有IE10、IE11 會這樣,其它IE瀏覽器跑的妥妥的呢?嗯,為了滿足你的好奇心,我們繼續分析。

  如果你的機器上裝了.NET的FrameWork,打開這個目錄 C:/Windows/Microsoft.NET/Framework/v4.0.30319/Config/Browsers??破障?,文件夾里面的.browser文件是全局訪問的,用于標識發出請求的瀏覽器,并標識這些瀏覽器具備的功能。如果要做定制修改(比如針對特定移動設備),只需把相應的.browser文件復制到應用程序的/App_Browsers文件夾中修改即可。先用記事本打開 ie.browser 這個文件,

注意圖中標注為紅色部分的正則表達式;然后再來看看,微軟公布的IE10的User-Agent:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0),MSIE版本號由以前的1位數字(5-9)變成了現在的2位數字(10),很明顯,無法匹配上面的正則了吧。所以,由于無法正確識別IE10的User-Agent,所以ASP.NET把它看做是未知的瀏覽器,認為它不支持Cookie,由此而產生了一系列與Cookie相關的問題。

  問題的根本總算是知道了,那么該如何解決呢?

其實這個問題已經經過微軟官方確認,是IE10的Bug,其實也可以認為是ASP.NET 2.0、3.5、4.0的Bug,因這些版本都無法識別 IE10的User-Agent。微軟專門發布了HOTFIX來修復這個問題:

  • KB2600088: Hotfix 適用在 Microsoft.NET Framework 4.0 中的 ASP.NET
  • KB2608565: Hotfix適用在 .NET Framework 3.5.1 中的 ASP.NET
  • KB2600100: Hotfix適用在 .NET Framework 3.5 SP1與 .NET Framework 2.0 SP2 中的 ASP.NET

碼農單位的很多Windows服務器都會自動更新安裝補丁,所以場景2中說的其它地市使用正常,其實是因為這些服務器已經打上了補丁,一些新上架、重裝系統的服務器或自動更新沒有設置的服務器就很可能會出現這類問題。。。  如果對服務器沒有操作權限或者不想打補丁這么麻煩,比如碼農我,也可以在網站的根目錄,新增一個瀏覽器定義文件,步驟如下:

1、添加一個"App_Browsers"文件夾;

2、添加一個"*.browser"后綴的文件,如 IE10.browser;

3、在文件中添加如下內容(下面的配置表示,對所有的設備和瀏覽器,都支持Cookies):

<browsers>       <browser refID="Default">            <capabilities><!-- To avoid wrong detections of e.g. IE10 -->               <capability name="cookies" value="true" />               <capability name="ecmascr

這是針對某個站點的配置,如果既不想打補丁又想對服務器上的所有站點做全局配置,要如何處理呢?很容易,其實上面已經明示,問題是出在ie.browser 這個文件的配置上,所以我們只需在原來的基礎上,加上這一串 "/d{2,}$",使ASP.NET 能識別IE10的User-Agent就可以了。修改后的配置如下:

<capability name="majorversion" match="^[6-9]|/d{2,}$" />

修改完后,再到命令行下將修改后的 .browser 文件編譯成程序集并安裝到GAC中,如果是Windows Server 2008、Win7,要以管理員身份運行命令行:C:/Windows/Microsoft.NET/Framework/v4.0.30319/aspnet_regbrowsers.exe -i

  如果是IE11,由于其User-Agent "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko" 變化更大,所以需把下面這串加入來做匹配:

<!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko --><browser id="IE11javascript"           value="true" />        <capability name="Javascriptversion"    value="1.5" />        <capability name="w3cdomversion"        value="1.0" />        <capability name="ExchangeOmaSupported" value="true" />        <capability name="activexcontrols"      value="true" />        <capability name="backgroundsounds"     value="true" />        <capability name="cookies"              value="true" />        <capability name="frames"               value="true" />        <capability name="javaapplets"          value="true" />        <capability name="supportsCallback"     value="true" />        <capability name="supportsFileUpload"   value="true" />        <capability name="supportsMultilineTextBoxDisplay" value="true" />        <capability name="supportsMaintainScrollPositionOnPostback" value="true" />         <capability name="supportsVCard"        value="true" />        <capability name="supportsxmlHttp"      value="true" />        <capability name="tables"               value="true" />        <capability name="supportsaccessKeyAttribute"    value="true" />        <capability name="tagwriter"            value="System.Web.UI.HtmlTextWriter" />        <capability name="vbscript"             value="true" />        <capability name="revmajor"             value="${major}" />        <capability name="revminor"             value="${minor}" />    </capabilities></browser>

  三板斧搞定!

  幸福來的就是這么突然~~~


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品美女av| 久久亚洲精品成人| 欧美猛交免费看| 97久久超碰福利国产精品…| 国产亚洲人成网站在线观看| 日韩亚洲第一页| 激情亚洲一区二区三区四区| 亚洲国产精品一区二区久| 国产一区二区三区在线免费观看| 成人欧美一区二区三区黑人| 日韩欧美在线视频观看| 亚洲第一精品久久忘忧草社区| 国模gogo一区二区大胆私拍| 欧洲成人在线视频| 日韩中文字幕在线视频播放| 日韩在线中文字幕| 亚洲精品久久久久久下一站| 欧美www视频在线观看| 亚洲视频在线看| 亚洲欧美激情在线视频| 伊人久久久久久久久久| 亚洲国产欧美一区二区三区同亚洲| 国外日韩电影在线观看| 成人免费在线视频网站| 岛国av一区二区在线在线观看| 成人亚洲综合色就1024| 欧美激情视频三区| 97在线观看视频国产| 亚洲最新在线视频| 国产精品久久久久久久久免费看| 97超级碰碰碰久久久| 国模私拍视频一区| 亚洲免费视频在线观看| xxx成人少妇69| 欧美专区福利在线| 7m第一福利500精品视频| 欧美日韩亚洲91| 最新69国产成人精品视频免费| 亚洲的天堂在线中文字幕| 欧美一二三视频| 在线播放亚洲激情| 成人久久一区二区| 日韩av电影中文字幕| 国产91热爆ts人妖在线| 国产ts一区二区| 欧美日韩国产中文精品字幕自在自线| 成人午夜在线影院| 国产精品欧美日韩一区二区| 精品中文字幕乱| 欧美日韩性视频在线| 亚洲精品大尺度| 亚洲一区制服诱惑| 欧美黄色片在线观看| 国产精品网红直播| 国产日韩中文字幕| 国产亚洲精品久久久久久牛牛| 国产国语videosex另类| 欧美在线一级va免费观看| 成人免费视频xnxx.com| 亚洲国产成人精品女人久久久| 久久影视三级福利片| 日韩电影大全免费观看2023年上| 欧美激情亚洲激情| 欧美激情亚洲综合一区| 亚洲一二三在线| 欧美精品午夜视频| 亚洲第一页自拍| 午夜精品一区二区三区av| 亚洲男人av电影| 国产成人涩涩涩视频在线观看| 国产精品视频免费在线| 日本精品免费观看| 91精品成人久久| 国产国语videosex另类| 欧美亚洲另类激情另类| 91在线观看免费网站| 日韩暖暖在线视频| 亚洲一区久久久| 精品国产乱码久久久久酒店| 精品国产依人香蕉在线精品| 日韩视频欧美视频| 91老司机精品视频| 国产日本欧美视频| 韩剧1988在线观看免费完整版| 午夜精品久久17c| 国产精品流白浆视频| 少妇激情综合网| 国产成人免费av| 欧美猛交ⅹxxx乱大交视频| 亚洲qvod图片区电影| 日韩精品丝袜在线| 欧美成aaa人片免费看| 最近2019免费中文字幕视频三| 日韩av中文字幕在线| 国产一区二区三区高清在线观看| 欧美在线不卡区| 欧美中文在线免费| 日韩av手机在线看| 亚洲电影免费观看高清完整版| 日韩国产精品亚洲а∨天堂免| 国产精品成人一区二区三区吃奶| 俺去了亚洲欧美日韩| 免费av在线一区| 久久久久久高潮国产精品视| 国产精品欧美激情在线播放| www.欧美三级电影.com| 日韩av综合中文字幕| 亚洲人成电影网站色xx| 色香阁99久久精品久久久| 欧美极品欧美精品欧美视频| 久久99国产综合精品女同| 国产精品男人爽免费视频1| 国产精品成人aaaaa网站| 亚洲一区二区三区久久| 亚洲国产成人精品女人久久久| 日韩av手机在线| 91极品女神在线| 日韩高清电影免费观看完整| 精品二区三区线观看| 日韩精品免费一线在线观看| 中文字幕亚洲欧美日韩2019| 国产精品xxx视频| 日韩欧美在线字幕| 日韩精品中文字幕久久臀| 精品亚洲一区二区三区| 亚洲视频一区二区三区| 狠狠综合久久av一区二区小说| 国产精品无av码在线观看| 欧美一级淫片videoshd| 亚洲精品自在久久| 亚洲综合中文字幕在线观看| 精品二区三区线观看| 日韩免费在线看| 欧美午夜片欧美片在线观看| 亚洲人成网站777色婷婷| 国产色综合天天综合网| 琪琪第一精品导航| 亚洲欧美另类中文字幕| 国产美女被下药99| 日韩人在线观看| 一本色道久久综合亚洲精品小说| 精品激情国产视频| 久久视频在线视频| 欧美午夜精品久久久久久人妖| 国产日韩欧美在线看| 久久综合伊人77777蜜臀| 尤物九九久久国产精品的特点| 成人看片人aa| 欧美激情一区二区三区在线视频观看| 日韩免费中文字幕| 亚洲第一区第二区| 亚洲天堂一区二区三区| 日韩av快播网址| 亚洲电影在线观看| 亚洲自拍小视频免费观看| 一区二区欧美日韩视频| 亚洲国产一区自拍| 亚洲伊人一本大道中文字幕| 亚洲人成网站免费播放| 亚洲精品一区二区三区婷婷月| 丰满岳妇乱一区二区三区| 5566日本婷婷色中文字幕97| 欧美成人精品激情在线观看| 久久91亚洲人成电影网站|