Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#when#提供而不是提供时分离查询字符串?_C#_Asp.net Mvc_Query String_Identityserver3 - Fatal编程技术网

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

如何在C#when#提供而不是提供时分离查询字符串?,c#,asp.net-mvc,query-string,identityserver3,C#,Asp.net Mvc,Query String,Identityserver3,我使用.NET4.7、MVC5和C# 我从第三方端点收到一个查询字符串,其中包含一个#,而不是一个?即: endpoint#code=123456&parm2=123.... 而不是: endpoint?code=123456&parm2=123.... 我通常的代码是: string[] codes = Request.Params.GetValues("code") 或 我不会处理这个问题。保持返回null。我无法让第三方改变这一点,显然这是oauth2规范的一部分,被

我使用.NET4.7、MVC5和C#

我从第三方端点收到一个查询字符串,其中包含一个#,而不是一个?即:

endpoint#code=123456&parm2=123....
而不是:

endpoint?code=123456&parm2=123....
我通常的代码是:

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

我不会处理这个问题。保持返回null。我无法让第三方改变这一点,显然这是oauth2规范的一部分,被称为“散列片段”

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

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

想法

提前感谢。

片段(在
#
符号之后的所有内容)不会根据以下条件发送到服务器:

但是,由这样一个 引用仅包括片段后面的绝对URI 在解析任何相对URI后,删除标识符(如果有) 到它的绝对形式


无法从服务器端检索。

#是一个锚符号,我很确定它是一个浏览器端的东西,用于在页面加载后定位页面上的位置,而不是在请求中发送,这就是您无法看到它的原因。感谢您的回复。肯定是由第三方服务器返回的,这里有一个关于它的链接:
不是querystring的一部分。这是一个url。查询字符串在
之后开始。该URL在技术上无效。您尝试过该问题吗?如果您希望通过查询字符串(与默认的哈希片段相反)获得结果,则需要根据规范将response_mode=query添加为参数。我会尝试,但Brock Allen在论坛上尝试过,但没有任何效果。但我会尝试一下……啊,你是说重定向到“localhost/endpoint#code=1234”会让浏览器调用“endpoint”,但没有参数?是的,返回时,浏览器(或软件)会在呈现之前将片段添加到响应URL。有没有办法用客户端(比如使用Javascript)将其替换为,然后转发到服务器?是的,你确实可以用Javascript做类似的事情。我会尽可能地修改源代码(或者让它被修改)。谢谢你的建议。我将调查JS路线。我将努力让第三方改变这一点。
string code = Request.QueryString["code"];