- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 ASP.NET MVC 3.0 构建的应用程序。它使用asp.net 的内置表单例份验证,没有 session 状态和浏览器上的cookie 来识别发出请求的用户。
现在,当我使用 IE9 测试应用程序时,典型的 HTML 请求会在 header 中发送此用户代理,并且一切正常。
用户代理:Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0)
但是,我们在应用程序中有一个页面,其中有一个 ActiveX 容器,用于在浏览器中托管 Microsoft Word。这个 ActiveX 容器的目的是允许您对 word 文档进行修改,单击按钮将带有更改的 word 文档发布到我们的服务器,以便保存。
ActiveX 控件中有一个方法——来自 www.ocxt.com 的 Office 查看器组件——称为 HttpPost(),它可以将查看的文档的内容发布到服务器。
当您调用 HttpPost() 时,它会正确发送所有相同的 cookie,但使用不同的 User-Agent 字符串。
用户代理:Mozilla/4.0(兼容;MSIE 5.5;Windows NT 4.0)
使用 MSIE 5.5 字符串的 UserAgent 似乎导致 ASP.NET 或 MVC 不将请求发送到适当的 Controller ,而是将重定向响应发送到登录页面,即使 session 的 cookie 是正确的。我用 Fiddler 做了一个测试,并尝试使用 MSIE 6.0、7.0、8.0,这些似乎工作正常,所以具体来说,5.5 会导致部分服务器堆栈重定向到登录页面。
这个页面过去工作得很好,所以我不确定最近版本的 ASP.NET/MVC 是否有什么变化,还是因为我已经升级到 IE9.0,但基本上,我想知道如果可以告诉 ASP.NET 在确定 session 是否已经通过身份验证时不考虑用户代理。
谢谢。
最佳答案
IIRC 在 ASP.NET 4.0 中发生了变化,其中 Forms 身份验证使用用户代理来检测它是否支持 cookie,如果它不是公认的或不受支持的用户代理,则它根本不使用身份验证 cookie。您将需要更改 HTTP 请求的用户代理。
关于asp.net - 触发表单例份验证的 User-Agent header 中的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7570660/
我计划在网页上安装 Facebook 评论模块/插件,比方说: http://www.example.com/ 是否可以将用户重定向到网站内的另一个登录页面?假设我想在点击发表评论后将它们发送到这里:
我是一名优秀的程序员,十分优秀!