问题是这样的,我在本地测试设置身份验证票据都没问题,发布到服务器后访问地址添加了一些特殊的字符,看起来像加过密的,如下:

http://www.example.com/(F(1xe9eXIxPzMALrZu6xd_xiccanJf4m0bo0ceEJ70Mv20XYaMSlA2))/some/path

正常的地址应该是:

http://www.example.com/some/path

  我的测试环境为:win7 64位、IE10

  服务器上的IE8测试也有问题,具体环境:Windows Server 2003 64位、IE8

  在这两个环境下访问都无法产生正常的URL

很奇怪的问题,困扰了我很久,之前出过现过一次,后来代码重新发布了一遍,居然自己就好了,今天又碰到了,所以决定彻底解决一下,最后写了一个很简单的例子来做测试后,得出是 FormsAuthentication.SetAuthCookie设置身份验证票据无法写入Cookie,测试的代码:

FormsAuthentication.SetAuthCookie("1", false);
Response.Redirect("Default.aspx");

最后了解到这些特殊字符其实就是身份验证票据,由于客户端不接收Cookie,所以Asp.net中把Cookie信息写入了地址栏,参考微软的身份验证票据原理,了解了原因之后该如何解决呢,最后Google中找到了答案:

这是IE10的一个bug或者说是asp.net 4的一个Bug,在IE10里更改了http头,这样导致asp.net 4认为客户端没有启用cookie,会导致验证失败。
简单的解决方法是,在网站根目录,新增一个浏览器定义文件(browser definition file)
步骤如下:
  1.添加一个"App_Browsers"文件夹
  2.添加一个"*.browser"后缀的文件,如IE10.browser.
  3.添加文件内容如下:
  <browsers>
    <browser refID="Default">
      <capabilities><!-- To avoid wrong detections of e.g. IE10 -->
      <capability name="cookies" value="true" />
      <capability name="ecmascriptversion" value="3.0" />
      </capabilities>
    </browser>
  </browsers>

参考文章:http://www.cnblogs.com/79039535/p/3335121.html

IE10下 FormsAuthentication.SetAuthCookie无效的问的更多相关文章

  1. Asp.net MVC Form认证,IIS改成集成模式后,FormsAuthentication.SetAuthCookie无效,Request.IsAuthenticated值,始终为false,页面提示HTTP 错误 401.0 - Unauthorized,您无权查看此目录或页面

    最近公司领导要求,IIS网站要由经典模式改为集成模式,以提高性能.改完之后,登录成功跳转到主页之后,页面提示“”HTTP 错误 401.0 - Unauthorized“,“您无权查看此目录或页面”, ...

  2. MVC4 Forms 验证,部署到Hyper-v上.FormsAuthentication.SetAuthCookie无效的问题

    这是IE10的一个bug或者说是asp.net4的一个Bug,在IE10里更改了http头,这样导致asp.net4认为客户端没有启用cookie,会导致验证失败.简单的解决方法是,在网站根目录,新增 ...

  3. asp.net mvc 中[Authorize]在IE9以上版本关于FormsAuthentication.SetAuthCookie无效的问题 解决方案

    简单的解决方法是,在网站根目录,新增一个浏览器定义文件(browser definition file) 叫“App_Browsers”文件夹,然后里面放一个“IE10.browser”文件即可,网站 ...

  4. .NET在IE10下的回传BUG修复

    以前我也没注意到,直到有次公司新配了台机器做测试服务器,在测试过程中意外发现凡是涉及PostBack的操作仅在IE10下都无效,其他版本浏览器都没有问题,本机调试也没有问题. 这也就是说在程序相同的情 ...

  5. asp.net 登陆验证 Form表单验证的3种方式 FormsAuthentication.SetAuthCookie;FormsAuthentication.RedirectFromLoginPage;FormsAuthenticationTicket

    我们在登陆成功后,使用下面的3种方法,都是同一个目的:创建身份验证票并将其附加到 Cookie, 当我们用Forms认证方式的时候,可以使用HttpContext.Current.User.Ident ...

  6. 自己实现FormsAuthentication.SetAuthCookie方法,怎样在ASP.NET服务端代码中删除客户端Cookie

    如何手动设置AuthCookie ASP.NET中实现可以自己实现FormsAuthentication.SetAuthCookie方法,控制更为灵活 /// <summary> /// ...

  7. FormsAuthentication.SetAuthCookie

    这两天在研究 Forms 进行用户验证, 它本身没有什么上msdn上查一下就知道怎么个搞法了! 不过我在测试的时候发现也会产生 了一些疑问! 1. 什么我在web.config 的 authentic ...

  8. Aspnetpage ie10下 __dopost方法未找到 不能翻页的问题

    1.问题分析: 没有__dopost 的原因是因为没有 ie10下 页面里 没有这个 方法,和 2个 input 标签,ie10 没有解析出来,所以就不能翻页了. 2.解决办法:(缺什么补什么,将这个 ...

  9. 解决JSON.stringify()在IE10下无法使用的问题

    今天在IE10下遇到了JSON.stringify()无法使用的问题,错误信息为:'JSON' is undefined . 开始以为是没有添加json2.js引用的原因.后来发现,其他地方也没添加j ...

随机推荐

  1. TP5 助手函数与TP3.2单字母函数

    一.TP5 助手函数 助手函数 描述 abort 中断执行并发送HTTP状态码 action 调用控制器类的操作 cache 缓存管理 config 获取和设置配置参数 controller 实例化控 ...

  2. MYSQL 碎片查询

    查询库中碎片大于1G的所有表 数据总大小:DATA_LENGTH+INDEX_LENGTH实际表空间大小: TABLE_ROWS*AVG_ROW_LENGTH碎片大小:(DATA_LENGTH+IND ...

  3. v-html的应用

    var app=new Vue({ el: '#app', data:{ link:'<a href="#">这是一个连接</a>' },}) <di ...

  4. JS 字符串切割成数组

    var cheLin = "字*符*串" // console.log(cheLin) var array = cheLin.split("*");  arra ...

  5. poj 3254(状态压缩DP)

    poj  3254(状态压缩DP) 题意:一个矩阵里有很多格子,每个格子有两种状态,可以放牧和不可以放牧,可以放牧用1表示,否则用0表示,在这块牧场放牛,要求两个相邻的方格不能同时放牛,即牛与牛不能相 ...

  6. List,Set和Map详解及其区别和他们分别适用的场景

    Java中的集合包括三大类,它们是Set(集).List(列表)和Map(映射),它们都处于java.util包中,Set.List和Map都是接口,它们有各自的实现类.Set的实现类主要有HashS ...

  7. [BZOJ2288&BZOJ1150]一类堆+链表+贪心问题

    今天我们来介绍一系列比较经典的堆+链表问题.这类问题的特点是用堆选取最优解,并且通过一些加减操作来实现"反悔". 在看题之前,我们先来介绍一个神器:手写堆. 手写堆的一大好处就是可 ...

  8. c++11 List 容器

    c++11 List 容器 List简介 list是一个双向链表容器        可高效地进行插入删除元素.         list不可以随机存取元素,所以不支持at(pos)函数与[]操作符.  ...

  9. iPhone X 的原深感模组

    物理与数字世界正走向融合,我们每天醒来的时间.睡眠时长.心率和步数等数据都会被分享.上传并转化为分析数据.无处不自的 AI.互联互通和软件平台将改变用户对现实的感知. 2018 年的 CES 展(国际 ...

  10. HDU 2087 剪花布条(字符串匹配,KMP)

    HDU 2087 剪花布条(字符串匹配,KMP) Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出 ...