会社がユーザーの最初の訪問をキャプチャし、訪問しようとしていたページにリダイレクトするビジネス追跡システムを使用しているという問題がありますが、リファラー URL が添付されています...今、リファラー URL にはその人がいた URL が含まれています。訪問しようとすると(理由は聞かないでください、わかりません)、すべての値が重複してしまいます。
というわけでこちらを訪問…
home.aspx?test=test&test2=test2
になる
home.aspx?test=test&test2=test2&referrerurl=home.aspx?test=test&test2=test2
さて、リファラーを URL エンコーディングすることで問題は解決しますが、ゴリラに痴漢される可能性が高くなります。質問が立っています。.QueryString からの出力を重複排除するにはどうすればよいですか?
現在、私はこれを使用しています...
private string queryClean(string entity)
{
try
{
if(Request.QueryString["referrerUrl"] != null){
string[] Split = entity.Split(new Char[] { ',' });
string tmpValue = Convert.ToString(Split[0]);
return tmpValue;
}else{ return entity; }
}
catch (Exception cleanError)
{
errors.Text += "-clean-" + cleanError + "-endclean-";
return entity;
}
}
(アプリ レベルのエラー キャッチがある try/catch は無視しますが、まだ遊んでいます)。
私はC#.net 2を使用しています
ありがとう
[追加情報]
reffererURL は常に文字列の末尾にあるため、この時点以降のすべてのクエリ文字列を削除することは可能でしょうか?
使ってみました
string test = Convert.ToString(Request.QueryString);
string[] tRSplit = Regex.Split(test, "&referrerUrl");
Response.Write(tRSplit[0]);
と...
System.Collections.Generic.List<string> testb = new System.Collections.Generic.List<string>(Convert.ToString(Request.QueryString).Split('&'));
for (int i = 0; i < testb.Count; i++)
{
Response.Write(i +": "+ testb[i].ToString()+"<br><br>");
}
どちらもまだ重複を生成します
Trimを使用できますが、これを実現するためのよりクリーンで高速な方法はありますか。