The company's BP & IT project team began to develop BP & IT software since its establishment last month. This month, I started to test my tragedy and found that he did not support ie11on my computer. IT has not been solved for more than half a month.
Let's first analyze the reason home page login page normal browsing http://hr.bingjun.cc/
Web site rendering http://hr.bingjun.cc/(F (LOGIN)/Default. aspx
Click any link on any webpage
Key Value
Referer http://hr.bingjun.cc/MyTask/MyTaskPage.aspx
302 http://hr.bingjun.cc/
Http://hr.bingjun.cc/(F (rows)/Default. aspx
We can easily find out from the analysis. This is a URL link using the Cookie-free mode, and the F header can determine that our BP & IT project team uses Forms verification.
The jump page is a page with http://hr.bingjun.cc/mytask/mytaskpage.aspxwithout a Cookie-free URL. This leads to Cookie loss. Let alone the Session and login status that relies on cookies.
Why didn't CookieURL be included after the page Jump? I think their code didn't use the server path "~ /", Because only the server path ASP. NET is used to automatically provide CookieUrl
Ask the BP & IT project team why I cannot use the internal website on IE11 immediately after I find IT (answer my question is Microsoft's BUG)
The BUG that can cause this problem based on my knowledge should be ASP. NET's identification of IE11 as a Cookie-free browser.
In this case, there are many solutions starting from the server level.
We know that ASP. NET identifies whether the browser is non-Cookie-free and is identified by a library. We can also add something to this library.
C: \ Windows \ Microsoft. NET \ Framework \ v4.0.30319 \ Config \ Browsers
Open this directory and you will find that many of the following files are correct. This is ASP. NET used to identify the library of the browser. Open ie. browser.
Add a browser configuration Node
<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="screenBitDepth" value="8" /> <capability name="type" value="IE${major}" /> <capability name="version" value="${version}" /> </capabilities> </browser>
In this wayAll sites in v4.0.30319 can solve this problem.
2 BP & IT also said they have found a solution to changing the configuration file on the server. They do not dare to use too many websites on the server for fear of crash ~~ I don't know how to say them.
I don't know if all ASP. NET Config configuration files can be appended to or overwritten globally? (PS: global configuration is used in the Config in the above path)
Since it can be overwritten, it is okay to create a new browser file in the project. As for how to create a new browser file, I don't need to talk about it. (the images in the blog Park must be external links, or I need to add a few more images. steps are in)
3. If this is not easy or you are afraid that similar browsers will not be recognized in the future, modify the cookieless value.
Open web. config to add or modify nodes under 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="UseUri" loginUrl="~/Account/Login" timeout="2880" defaultUrl="~/" /> </authentication>
Configure cookieless = "UseCookies". In this case, all browsers use browser cookies instead of urlcookies regardless of their support for cookies. (have you ever seen browsers that do not support cookies? PS: I have seen it)
I think it's almost the same now.
PS: IE11 appears -- _ doPostBack undefined is also a problem that the browser does not recognize. However, it does not think that the browser does not recognize cookies, but that it does not support Javascript. In the first two methods, the focus is on configuration. add the following two sentences
<capability name="javascript" value="true" /> <capability name="cookies" value="true" />
(PS: Have you ever seen browsers that do not support Javascript? I have never met. This is Microsoft! By default, Chengdu does not support writing configuration files)