Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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# Querystring中的Guid正在以某种方式进行转换_C#_Asp.net_.net_Iis_Firewall - Fatal编程技术网

C# Querystring中的Guid正在以某种方式进行转换

C# Querystring中的Guid正在以某种方式进行转换,c#,asp.net,.net,iis,firewall,C#,Asp.net,.net,Iis,Firewall,我不知道为什么会发生这种情况,但以下是一些可能有助于找到解决方案的细节: 在大多数计算机上,firefox和IE似乎都能正常工作 当其他guid工作时,它会出现在某些guid上 我们将防火墙置于监视模式,但仍会发生 这是PageModify.aspx中生成查询字符串的行: Response.Redirect(string.Format("Editor.aspx?id={0}", pageId, CultureInfo.CurrentCulture)); 这是在一切正常时查询字符串的

我不知道为什么会发生这种情况,但以下是一些可能有助于找到解决方案的细节:

  • 在大多数计算机上,firefox和IE似乎都能正常工作
  • 当其他guid工作时,它会出现在某些guid上
  • 我们将防火墙置于监视模式,但仍会发生
这是PageModify.aspx中生成查询字符串的行:

Response.Redirect(string.Format("Editor.aspx?id={0}", pageId,
    CultureInfo.CurrentCulture));
这是在一切正常时查询字符串的输出:

https://example.com/Editor.aspx?id=1dfz342b-3a4d-4255-8054-93916324afs6
这是重定向到Editor.aspx时在浏览器中查看的内容:

https://example.com/Editor.aspx?id=1dfz342b-3a4d-xxxxxxxxxxxxxxx324afs6
当然,当此行运行时,我们会收到一个无效的guid错误:

_PageEditId= new Guid(Request.QueryString["id"]);

有人见过这个吗?可能是IIS设置吗?这里没有做什么特别的事情,每个人的系统都有相同的基线。内部和外部客户都会遇到这种情况。

我认为
-
不是查询字符串值的有效字符,请将其编码为:

Response.Redirect(string.Format("Editor.aspx?id={0}", Server.UrlEncode(pageId),
CultureInfo.CurrentCulture));
A是A,因此当它作为
字符串通过查询字符串时,您必须对其进行解析:

Guid PageEditId = Guid.Parse(Request.QueryString["id"]); //add null checks or use TryParse

pageId
是否实际键入为
Guid
?看起来像是个人信息监视器的行为。它是否仅在GUID组件为数字时发生?也许它认为这是一个SSN或电话号码,并出于隐私考虑将其删除。Mark Peters-Bing,这是一个默认的防火墙设置,屏蔽了似乎是信用卡号码的内容。谢谢@汤姆。您应该回答自己的问题并将其标记为已解决。我可以转到该页面并按其应做的方式进行编辑,但有几个人不能这样做,因此会引发服务器错误。都具有与Id相同的Guid。@rick:Guid
构造函数将尝试解析您传递给它的任何字符串。不需要显式调用
Parse
。@tom你为什么不检查这个答案?