asp.net Base-64 字符串中的无效字符

2024-03-28

我有一个 C# 移动网站,并且在使用某些移动客户端时遇到问题。我在下面发布了一条跟踪,但基本上是手机浏览器或手机连接到互联网 url 的 wap 网关对表单中的视图状态隐藏输入进行编码。

/wEPDwULLTExNTMyOTcwOTBkGAEFBlBtTGlzdA9nZA==

becomes

%2FwEPDwULLTEXNTMyOTcwOTBkGAEFBlBtTGlzdA9nZA%3D%3D

所以视图状态失败。

在处理之前是否有重写和 url 解码视图状态信息?



System.Web.HttpException: The state information is invalid for this page and might be corrupted. ---> System.Web.UI.ViewStateException: Invalid viewstate. 
 Client IP: 65.91.116.34
 Port: 37172
 User-Agent: SCH-R430 UP.Browser/6.2.3.8 (GUI) MMP/2.0
 ViewState: %2FwEPDwULLTExNTMyOTcwOTBkGAEFBlBtTGlzdA9nZA%3D%3D
 Referer: 
 Path: /mobile/Inbox.aspx ---> System.FormatException: Invalid character in a Base-64 string.
   at System.Convert.FromBase64String(String s)
   at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
   at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState)
   at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState)
   at System.Web.UI.HiddenFieldPageStatePersister.Load()
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError)
   at System.Web.UI.ViewStateException.ThrowViewStateError(Exception inner, String persistedState)
   at System.Web.UI.HiddenFieldPageStatePersister.Load()
   at System.Web.UI.Page.LoadPageStateFromPersistenceMedium()
   at System.Web.UI.Page.LoadAllState()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at ASP.mobile_inbox_aspx.ProcessRequest(HttpContext context)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
  

您可以实现一个自定义 ViewStatePersister 对象来处理此问题。您可能想从中导出它隐藏字段页面状态持久化 http://msdn.microsoft.com/en-us/library/system.web.ui.hiddenfieldpagestatepersister.aspx。看一眼本文 http://aspadvice.com/blogs/mamanzes_blog/archive/2006/08/27/Save-some-space_2C00_-compress-that-ViewState.aspx它展示了如何在 ViewState 之上实现压缩,但与您需要做的非常相似。

这涉及到一些黑客行为:您需要使用反射来设置状态格式化程序 http://msdn.microsoft.com/en-us/library/system.web.ui.pagestatepersister.stateformatter.aspx基类,与MSDN 文档 http://msdn.microsoft.com/en-us/library/system.web.ui.pagestatepersister.stateformatter.aspx也就是说,没有标记为虚拟,因此不能在没有反射的情况下被覆盖。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

asp.net Base-64 字符串中的无效字符 的相关文章

随机推荐

  • 如何在项目构建设置中指定 DEBUG 定义?

    我正在尝试实施日志记录方法http www cimgf com 2010 05 02 my current prefix pch file http www cimgf com 2010 05 02 my current prefix pc
  • 如何使用 Flutter SQFlite 获取数据库表中的行数

    如何在 Flutter 中获取数据库表的行数 我正在使用 SQFlite 插件 我认为它与Android类似 但Android有DatabaseUtils queryNumEntries db TABLE NAME SQFlite有类似的东
  • iOS 6 facebook sdk 3.1.1 登录错误

    我尝试使用 facebook 登录 遵循 facebook 教程https developers facebook com docs getting started facebook sdk for ios 3 1 https develo
  • 布尔逻辑设计 - 归约

    我有以下功能需要减少 简化 F A B C D BC A C D 其中 表示补集 Here s my solution BC A C D BC A C D BC A C D BC C A D C B 1 A D C 1 A D C A D
  • 检测输入框中的粘贴

    我有一个输入框 我想使用 vbscript 或 javascript 没有 jquery 来捕获粘贴事件 使用 onpaste 事件捕获该事件并在 Javascript 中执行您需要的操作 例如 禁用输入文本字段中的粘贴
  • 当 Mac 设置(而非浏览器设置)拒绝位置共享时,HTML5 地理定位 API 会悄然失败

    我遇到了一个问题 如果我的 Mac 拒绝位置共享 那么 JS 代码中什么也不会发生 这很危险 无论如何要解决这个问题吗 如果系统拒绝位置共享 我预计会抛出异常 Running macOS Mojave 10 14 6并测试于Chrome 8
  • 检查类是否存在于文件中而不需要/包含

    有没有一种方法可以检查文件中是否存在类而不包含 需要该类 就像是 class in file file 正如我已经提到的 我知道这可以通过要求 包括课程然后查找来完成class exists class 但还有其他方法吗 tokens to
  • Java查找数组索引中的最后一个成员

    假设我有一个大小为 10 的数组 索引范围为 0 到 9 我添加了一堆元素 并在索引 6 处停止添加 因此 使用 array length 我可以知道数组的大小为 10 但是如何找到哪个索引包含最后一个值 而该索引之后为空 我应该做一个循环
  • Javascript 代码,未终止的字符串文字

    错误控制台 未终止的字符串文字 html li div class above question number Question Title div JQuery 代码是 html li li div class above questio
  • 如何获取子进程的返回码

    在windows中生成子进程获取返回值的方法是什么 看起来像ShellExecute 使用起来比原来更简单CreateProcess 但从我迄今为止所做的阅读来看 两者都没有表明如何检查生成进程的返回值 这是怎么做到的 谢谢 安迪 要获取
  • 无法在 Mac 上启动 ElasticSearch

    我安装了elasticsearch by brew install elasticsearch并开始它brew services start elasticsearch 然而 curl http 127 0 0 1 9200 shows c
  • 如何比较 python 函数的性能? [复制]

    这个问题在这里已经有答案了 我已经编写了两个函数来做完全相同的事情 但我不知道哪个更快更好 我如何比较这两个函数 看看哪一个在性能和其他方面更好 The timeit http docs python org library timeit
  • 如何保留 Spark HashingTF() 函数输入的键或索引?

    基于 1 4 的 Spark 文档 https spark apache org docs 1 4 0 mllib feature extraction html https spark apache org docs 1 4 0 mlli
  • 计算向量中所有差异的可能性

    假设我有一个短向量x a b c d e 计算向量成员之间的所有差异的最佳方法是什么 y e d e c e b e a d e d c d b d a c e c d c b c a b e b d b c b a a e a d a c
  • 您可以为 SQL 2008 查询设置默认架构吗

    我有一个名为应用程序的模式 有没有一种方法 而不是使用语法 SELECT FROM application table 我可以设置默认架构 以便我可以使用 SELECT FROM table 我想这与 using 语句的想法相同 所有 sq
  • ejabberd MAM 不适用于 MUC

    xep 0313 适用于名册 但不适用于房间聊天 我可以获取名册的存档消息 但无法获取房间的存档消息 为什么
  • 使用 scipy 应用 Sobel 过滤器

    我正在尝试在图像上应用 Sobel 滤波器以使用 scipy 检测边缘 我在 Windows 7 Ultimate 64 位 上使用 Python 3 2 64 位 和 scipy 0 9 0 目前我的代码如下 import scipy f
  • 空白而不是零

    Duration isnull FunctionA DateA DateB 上面的函数计算天数 如果 day 为空 则显示 值 0 而不是空白值 如何更改上面的代码 使其显示空白而不是 0 值 null 如果您的函数返回一个整数 则结果来自
  • Reflect.getMetadata 在 Angular2 中不起作用

    我用过这个 Reflect getMetadata annotations AppComponent 0 template 在 plunker 中它工作得很好http plnkr co edit f47uORghJXaq0FtD00Th p
  • asp.net Base-64 字符串中的无效字符

    我有一个 C 移动网站 并且在使用某些移动客户端时遇到问题 我在下面发布了一条跟踪 但基本上是手机浏览器或手机连接到互联网 url 的 wap 网关对表单中的视图状态隐藏输入进行编码 wEPDwULLTExNTMyOTcwOTBkGAEFB