当 # 提供而不是时,如何在 C# 中分离查询字符串?

How to pull apart a querystring in C# when # provided instead of?

我使用 .NET 4.7、MVC5、C#

我收到来自第 3 方端点的查询字符串,其中包含 # 而不是 ?即:

endpoint#code=123456&parm2=123....

而不是:

endpoint?code=123456&parm2=123....

我常用的密码为:

string[] codes = Request.Params.GetValues("code")

string code = Request.QueryString["code"];

不会处理这个。一直返回 null。我无法让第 3 方更改此设置,显然它是 oauth2 规范的一部分,称为 "hash fragment"。

是否有可能获得完整的返回值 url 并通过字符串处理例程提取相关位?

虽然我在调试器中看不到完整的 URL,但如果我让端点完成,我会在浏览器的 URL 框中看到带有 # 的完整查询字符串。希望我能在代码中得到这个来拼接。

想法?

提前致谢。

片段(# 符号后的所有内容)未根据 RFC 2396, section 4:

发送到服务器

However, "the URI" that results from such a reference includes only the absolute URI after the fragment identifier (if any) is removed and after any relative URI is resolved to its absolute form.

无法在服务器端检索它。