Managed Fusion からソース コードをダウンロードし、プロジェクトをソリューションに追加しました。
QueryString を追加する以下のコードを検索して見つけました。クエリ文字列 CODE を削除して FIXED を追加する新しいメソッドを追加して、コードを更新しました。
また、CODE に割り当てられた FIXED 値を制御するための設定も追加しました。
private Uri AppendQueryString(Uri substituedUrl, Uri existingUrl)
{
string append = existingUrl.Query.TrimStart('?');
if (!String.IsNullOrEmpty(append))
{
UriBuilder builder = new UriBuilder(substituedUrl);
if (String.IsNullOrEmpty(builder.Query) || builder.Query == "?")
builder.Query = append;
else
builder.Query = builder.Query.TrimStart('?') + "&" + append;
return AppendFixedQueryString(builder.Uri, existingUrl);
}
return AppendFixedQueryString(substituedUrl, existingUrl);
}
追加された新しい方法
private Uri AppendFixedQueryString(Uri substituedUrl, Uri existingUrl)
{
string append = string.Format("CODE={0}", Settings.Default.CODE);
if (!String.IsNullOrEmpty(append))
{
UriBuilder builder = new UriBuilder(substituedUrl);
builder.Query = Regex.Replace(builder.Query, @"CODE=([0-9]+)", String.Empty);
if (String.IsNullOrEmpty(builder.Query) || builder.Query == "?")
builder.Query = append;
else
builder.Query = builder.Query.TrimStart('?').Trim("&".ToCharArray()) + "&" + append;
return builder.Uri;
}
return substituedUrl;
}
この改造で. ユーザーが明示的に URL に CODE=123 を入力しても無視され、固定の CODE 値が割り当てられます。