- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,一些简单的背景知识...作为与第三方供应商集成的一部分,我有一个 C# .Net Web 应用程序,它接收一个 URL,其中包含查询字符串中的大量信息。该 URL 使用 MD5 哈希值和共享 key 进行签名。基本上,我提取查询字符串,删除它们的哈希值,对剩余的查询字符串执行我自己的哈希值,并确保我的哈希值与提供的匹配。
我通过以下方式检索 Uri...
Uri uriFromVendor = new Uri(Request.Url.ToString());
string queryFromVendor = uriFromVendor.Query.Substring(1); //Substring to remove question mark
我的问题源于包含特殊字符(如元音变音 (ü))的查询字符串。供应商根据 RFC 2396 表示(%FC
)计算其哈希值。我的 C# .Net 应用程序根据 RFC 3986 表示(%C3%BC
)计算其哈希值。不用说,我们的哈希值不匹配,我抛出了我的错误。
奇怪的是,documentation for the Uri class in .Net说它应该遵循 RFC 2396,除非另外设置为 RFC 3986,但我的 web.config
文件中没有他们所说的此行为所需的条目。
如何强制 Uri 构造函数使用 RFC 2396 约定?
如果做不到这一点,是否有一种简单的方法可以将 RFC 3986 八位位组对转换为 RFC 2396 八位位组?
最佳答案
Nothing to do with your question, but why are you creating a new Uri here? You can just do
string queryFromVendor = Request.Url.Query.Substring(1)
; – atticae
为阁楼+1!我回去尝试删除我正在创建的无关 Uri,突然,该字符串的元音变音编码为 UTF-8 而不是 UTF-16。
起初,我认为这行不通。在此过程中,我尝试使用 Request.QueryString
检索 url,但这导致元音变音显示为 %ufffd
,即 � 字符。为了采取新的视角,我尝试了 atticae 的建议,它奏效了。
我很确定答案与 something I read here 有关。 .
C# uses UTF-16 in all its strings, with tools to encode when it comes to dealing with streams and files that bring us onto...
ASP.NET uses UTF-8 by default, and it's hard to think of a time when it isn't a good choice...
我的问题源于这里......
Uri uriFromVendor = new Uri(Request.Url.ToString());
通过获取 Request.Url
uri 并创建另一个 uri,它被编码为 C# 标准 UTF-16。通过使用原始的uri,它保留在.Net标准UTF-8中。
感谢大家的帮助。
关于asp.net - .Net Uri 编码 RFC 2396 与 RFC 3986,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7034209/
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 10年前关闭。 Improve this
我发现 IMAPv4 有一个缺点,因为它强制用户下载整个正文(文本/HTML + 附件)。 如何编写并提出 RFC 来解决该问题? 如果您之前有撰写技术文档、提案,尤其是 RFC 的经验,请分享。 最
URLComponents.init(url:resolvingAgainstBaseURL:) 的文档说: Returns the initialized URL components object
似乎 Internet-Draft 提供了一个下载 XML 文件的链接(例如 https://tools.ietf.org/id/draft-ietf-oauth-v2-31.xml ),但我找不到下
我注意到 RFC 中的一个错误,我想报告该错误,并希望看到发布的勘误表。 有谁知道如何向 IETF 工作组正式报告错误。 IETF 是否有某种错误/错别字跟踪? 我试图给 RFC 的作者发送一封电子邮
我看到http://www.ietf.org/rfc/rfc4122.txt RFC 4122 第 4 版的最大长度是多少?换句话说,它是否始终与从文档中获取的示例字符串值的最大长度相同? f81d4
rfc-editor说 "Obsoletes xxxx" refers to other RFCs that this one replaces. "Updates xxxx" refers to o
在原生 Android 日历应用中,使用 RFC 2445 协议(protocol)创建 .ics文件。我在一些博客中发现 RFC 2445 被 RFC 5545 取代。谁能告诉我 RFC 5545
我正在将一些 Python 代码翻译为 C++。部分代码使用base 64编码。 Python 代码使用RFC 3548编码,但我使用的C++库只有RFC 4648 . 我知道 RFC 4648 已过
我的程序在线抛出这个异常,我知道它出错的原因。 我的问题是如何找到错误的地方,Java 无法捕获此异常的位置。 如何获取有关此异常的其他信息,例如此错误的 API 请求地址。 错误信息如下: 2019
我正在尝试为 multipart/related 实现一个基本的 MIME 解析器。在 C++/Qt 中。 到目前为止,我一直在为 header 编写一些基本的解析器代码,并且我正在阅读 RFC 以了
我正在尝试在 HTTP 服务器上实现 RFC 2388 以支持多部分 POST。 我正在查看专门针对内容配置的“名称”参数的规范。 根据 RFC 2388 的第 3 节,它指出: Field name
首先,一些简单的背景知识...作为与第三方供应商集成的一部分,我有一个 C# .Net Web 应用程序,它接收一个 URL,其中包含查询字符串中的大量信息。该 URL 使用 MD5 哈希值和共享 k
早上好。 我们有一个使用 SAP RFC SDK 的“经典”API 的 SAP 工作 Idoc 接口(interface)。由于不再支持它,我们需要迁移到带有新 API 的新 Netweaver RF
我正在使用一个非常 bing 和旧的软件,它与 servlet 一起工作,并且在 URL 中包含重音符号和其他奇怪的字符。 几周前软件从JDK7升级到JDK11,服务器从Tomcat6升级到Tomca
1.情景展示 tomcat 日志时不时会报出如下异常信息,到底是怎么回事? ?
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid charact
谁能告诉我白天服务器的用途是什么?我提到了一些网站,如 wikipedia ,却找不到答案。 最佳答案 Daytime Protocol 是供计算机通信的一种广泛接受的已知格式 RFC 867允许 2
是否有关于在 RFC 上撰写评论的一般指南? 最佳答案 根据IETF ,一旦发布,RFC 不会改变。勘误可以提交到editor at rfc-editor.org .对未发表的 RFC 的评论可提交至
我写了一个ABAP功能模块,如果我用我的开发者账号执行它就可以了。 如果另一个用户执行它,他会得到一个空结果。另一个用户是无法使用 SAP GUI 登录的 RFC 帐户。 我不知道如何调试它。如何执行
我是一名优秀的程序员,十分优秀!