[Bug]IE11下,forms认证,出现无法保存cookie的问题

目录

ie11

解决方案

ie11

在ie11下,访问服务器上的网站地址,莫名其妙的多出一串东西,这一串字符串是由于客户端禁用cookie造成sessionid无法写入cookie,所以就拼在url上面了:

http://192.168.80.90:8003/(F(f7MHPrEbtCN867LFxf9VSLQnzHRsU41jVEYkBT6WTAbyiBlFGeJrLDnvj7cI4M8fEUPPwoqLANdfLxb7ydCt6vOPDxh9rP2ssg9L7-xvSpaEV2pE6eIW9foWcMbw6MMQAcTU2ClXOHggMGGbhzv-MA2))/GroupZone/TopicManager.aspx?groupID=137197c1-c13d-4580-8a46-1535e639feaf

如图所示:

也可以看一下forms验证FormsAuthentication.SetAuth方法:

 1         //
 2         // 摘要:
 3         //     为提供的用户名创建一个身份验证票证,并将该票证添加到响应的 Cookie 集合中或 URL 中(如果使用的是无 Cookie 身份验证)。
 4         //
 5         // 参数:
 6         //   userName:
 7         //     已验证的用户的名称。这不必映射到 Windows 帐户。
 8         //
 9         //   createPersistentCookie:
10         //     如果为 true,则创建持久 Cookie(跨浏览器会话保存的 Cookie);否则为 false。
11         //
12         // 异常:
13         //   System.Web.HttpException:
14         //     System.Web.Security.FormsAuthentication.RequireSSL 为 true 且 System.Web.HttpRequest.IsSecureConnection
15         //     为 false。
16         public static void SetAuthCookie(string userName, bool createPersistentCookie);

正常应该是

http://192.168.80.90:8003/GroupZone/TopicManager.aspx?groupID=137197c1-c13d-4580-8a46-1535e639feaf

解决方案

方案1:

查找了网上的说法,说是客户端浏览器禁用cookie造成的,然后在web.config中添加cookieless=“UseCookies”

1 <authentication mode="Forms" >
2       <!--ie11 禁用cookie,解决方案-->
3       <forms cookieless="UseCookies"  loginUrl="~/GroupZone/Login.aspx" timeout="1000"></forms>
4 </authentication>

修改后的浏览,如图所示:

ie11配置:(为了不修改客户端浏览器的配置可以修改网站的web.config)

方案2:

虽然上面的解决方案解决了的问题,但是页面的样式还是错乱的,导致页面上的一些服务器控件无法使用。在服务器.net framework的版本为4.0,将版本升级到4.5,重启电脑解决问题,配置文件中也不需要修改了,样式也正常了。

总结

这个问题折磨我两天了,今天终于解决了,各种办法都尝试了,最后没办法了,将服务器中.net framework给升级了。反而问题解决了,无语了。

[Bug]IE11下,forms认证,出现无法保存cookie的问题

时间: 2024-08-03 16:51:23

[Bug]IE11下,forms认证,出现无法保存cookie的问题的相关文章

IE11下Forms身份认证无法保存Cookie的问题

ASP.NET中使用Forms身份认证常见的做法如下: 1. 网站根目录下的Web.config添加authentication节点 <authentication mode="Forms"> <forms name="MyAuth" loginUrl="manager/Login.aspx" defaultUrl="manager/default.aspx" protection="All&quo

IE11下ASP.NET Forms身份认证无法保存Cookie的问题

IE11下ASP.NET Forms身份认证无法保存Cookie的问题 折腾了三四天,今天才找到资料,解决了. 以下会转贴,还没来得及深究,先放着,有空再学习下. ASP.NET中使用Forms身份认证常见的做法如下: 1. 网站根目录下的Web.config添加authentication节点 <authentication mode="Forms"> <forms name="MyAuth" loginUrl="manager/Log

[转]Forms身份认证在IE11下无法保存Cookie的问题

转自:http://www.jb51.net/article/49744.htm 这篇文章主要介绍了Forms身份认证在IE11下无法保存Cookie问题的解决方法,需要的朋友可以参考下 ASP.NET中使用Forms身份认证常见的做法如下: 1. 网站根目录下的Web.config添加authentication节点 <authentication mode="Forms"> <forms name="MyAuth" loginUrl="

IE10,IE11下点击LinkButton出现_doPostBack未定义错误解决方法

出现的原因 .NET2.0和.NET4.0一起发布的浏览器定义文件中有一个错误,它们保存相当一部分浏览器版本的定义.但是浏览器的有些版本(比如IE10,11)则不再在这个范围之内.因此,ASP.NET把它们看做是未知的浏览器,默认降级处理,这样就会给用户带来不便,比如不支持JavaScript特性.而ASP.NET的服务器控件asp:LinkButton的渲染机制使得错误发生. 服务器控件: <asp:LinkButton ID="Logout" runat="serv

asp.net权限认证:Forms认证

摘要: 明天就除夕了,闲着也是闲着,特地总结一些关于.net下的权限认证的方法. 一.Forms认证示意图 Forms认证即是表单认证,需提供身份id和密码password的进行认证和授权管理. 应该是大家比较熟悉的一种,刚接触.net可能都会学学这个东西. 下面看看他的工作方式: 二.看图太乏味,我准备了一个demo 因为默认首页为:IndexController/Index,这个页面只要一行字 “Index”, 效果图: OK,页面没有做任何权限控制,显示正常. 接下来看看DefaultCo

在asp.net WebAPI 中 使用Forms认证和ModelValidata(模型验证)

一.Forms认证 1.在webapi项目中启用Forms认证 Why:为什么要在WebAPI中使用Forms认证?因为其它项目使用的是Forms认证. What:什么是Forms认证?它在WebAPI中就是一个MessageHandle,具体请查找关键字“ASP.NET Forms” How:如何启动Forms认证? 最简单的是通过配置启动Forms认证: 1 <system.web> 2 <authentication mode="Forms"> 3 <

IE11下的NPOI导出提示__doPostBack未定义解决方案

asp.net项目在IE11下出现“__doPostBack”未定义的解决办法 在项目根目录 App_Browsers(没有就新建这个文件夹) 下新建 浏览器文件(.browser),让其与IE11的 UserAgent 匹配,使 .net framework 认识这是一个已知的浏览器,可以正常地向客户端输出脚本. 在文件里输入以下内容,保存即可.<browsers><browser id="IE11" parentID="Mozilla">

FormsAuthentication 登录兼容 IE11 保存cookie

现象:使用FormsAuthentication进行登录验证,在IE11客户端无法保存cookie 解决方法:在web.config中的forms中增加cookieless="UseCookies"属性. 原文地址:http://www.wlm.so/Article/Detail/lmb48dogzil3b00000 <authentication mode="Forms"> <forms cookieless="UseCookies&q

Linux下使用vi新建文件保存文件时遇到错误:E212: Can&#39;t open file for writing

出现E212: Can't open file for writing的问题是由于权限问题导致的,解决方法有以下思路: 1.使用root进行登录,然后再操作. 2.在使用命令时,前面加sudo. 3.如果是多级文件夹的文件时,由于这个文件夹没有创建,所以要先创建这个文件夹,再来操作这个文件. Linux下使用vi新建文件保存文件时遇到错误:E212: Can't open file for writing