• [net2.0] ASPNET内置安全认证架构 的灵异问题~~~~


    本人在一个项目中使用了ASPNET内置安全认证架构,感觉十分良好,测试也挺正常,但随着项目上线,我发现了一个奇怪的问题,比如A用户在这边登陆了,然后B用户也登陆了(不同的网段或同网段),而在某种特定的条件下(至于什么条件本人还没搞出来,很没责任心)B用户在登陆时会诡异的获得A用户的身份票证,(假设A用户是个超级管理员)这。。。这会出人命的啊,园子里什么鸟都有,肯定有遇到过类似的问题的大鸟,请指点一二,小弟拜上!


    --------------------------------------
    真正的 解决方案:
    (实际上KernelOutputCache被禁用后,COOKIES依然会被分发到不同的用户主机上,也就是说所谓的MS的解决方案对偶一点用页没,当你放弃对MS的期望后,思路却一下开拓了许多,一个异常简单却有效的解决方法,用一个IFRAME包住需要产生COOKIE的部分(例如登陆)就OK了,我原来的登陆是使用AJAX,所以直接作为控件包容在页面中,在IFRAME部分的页面是不被缓冲的,所以不会受到
    KernelOutputCache的任何影响!

    症状

    考 虑以下方案。 Microsoft ASP.NET 页包含 < % OutputCache % > 指令。 此外, ASP.NET 页面生成包含 Cookie 设置 - 响应一个 HTTP 头。 在此方案, HTTP 协议堆栈 (HTTP.sys) 内核缓存 Microsoft Internet Information Services (IIS) 6.0 中存储 ASP.NET 页。 因此, 谁访问同一页多用户可能收到相同 Cookie。


    替代方法

    要解决此问题, 根据适合您情况使用下列方法, 之一。


    方法 1: 禁用内核缓存模式

    可禁用缓存整个系统, 内核模式或者您可以禁用内核模式对于特定 ASP.NET 应用程序缓存。 此方法解决首选方法是因为仍可使用输出缓存 ASP.NET 应用程序中。 要禁用内核缓存模式, 请按照下列步骤:
    1. 如果要禁用缓存整个系统, 内核模式打开 Machine.config 配置文件。 此文件位于以下文件夹中:
    驱动器 : \WINDOWS\Microsoft .NET\Framework\ Version \CONFIG
    注意 驱动器 是代表操作系统安装驱动器占位符。 版本 是一个占位符, 代表已安装 Microsoft.NET 框架的版本号。

    如果要禁用缓存为特定 ASP.NET 应用程序, 内核模式打开 Web.config 配置文件。 此文件位于 ASP.NET 应用程序文件夹中。
    2. 在配置文件, 找到 < httpRuntime > 元素, 并然后添加以下属性:
    enableKernelOutputCache = " false "


    方法 2: 禁用特定 ASP.NET 页面中输出缓存

    禁 用特定 ASP.NET 页面生成包含 Cookie 设置 - 响应一个 HTTP 头中输出缓存。 但是, 必须确定整个应用程序可能生成一个 Cookie 中每个 ASP.NET 页。 例如, 如果使用 Cookie 来维护会话状态, 用户访问任何页面可能生成一个 cookie。

    要 禁用特定 ASP.NET 页面, 中输出缓存从任何 .aspx 文件, 您不想缓存删除 < % OutputCache % > 指令。 有关 < % OutputCache % > 指令在 ASP.NET 页, 请访问 Microsoft Developer Network (MSDN) Web 站点: http://msdn2.microsoft.com/en-us/library/zd1ysf1y(VS.80).aspx

  • 相关阅读:
    「小程序JAVA实战」java-sesion的状态会话与无状态会话(38)
    「小程序JAVA实战」小程序 loading 提示框与页面跳转(37)
    「小程序JAVA实战」小程序登录与后端联调(36)
    phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
    基于Bootstrap简单实用的tags标签插件
    html 中几次方,平方米,立方米,下标,上标,删除线等的表示方法
    如何做好App的引导页?(转)
    个推+DCLOUD,推送消息和透传消息
    AXURE在原型设计中的应用
    ***敏捷软件测试--初见
  • 原文地址:https://www.cnblogs.com/niuniu502/p/1132287.html
Copyright © 2020-2023  润新知