Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.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传输小型XML序列化对象_C#_Xml - Fatal编程技术网

C# 通过querystring传输小型XML序列化对象

C# 通过querystring传输小型XML序列化对象,c#,xml,C#,Xml,我有一个小对象,其中包含三个左右的数据项,我希望序列化这些数据项并将其发送到查询字符串中,以便混淆查询字符串。该页面是从桌面应用程序中的web浏览器控件打开的,因此使用querystring似乎是最好的选择 我可以使用System.Web.HttpUtility.UrlEncode方法,但我怀疑这对用户来说太明显了 如何对XML序列化对象进行编码,使其看起来像一堆字母和数字,没有非法字符 e、 g.url\u在这里变成lskjfgdf98gsjkhgdf786sg987dfkjlnadfg89编

我有一个小对象,其中包含三个左右的数据项,我希望序列化这些数据项并将其发送到查询字符串中,以便混淆查询字符串。该页面是从桌面应用程序中的web浏览器控件打开的,因此使用querystring似乎是最好的选择

我可以使用System.Web.HttpUtility.UrlEncode方法,但我怀疑这对用户来说太明显了

如何对XML序列化对象进行编码,使其看起来像一堆字母和数字,没有非法字符


e、 g.
url\u在这里
变成
lskjfgdf98gsjkhgdf786sg987dfkjlnadfg89

编码功能在VB.NET桌面应用程序中:

Dim plaintext as String = myState.Serialize
Dim bytes As Byte() = ASCIIEncoding.UTF8.GetBytes(plaintext)
Dim encrypted As Byte() = Encryption.Encrypt(bytes, key)
Dim encodedtext As String = Convert.ToBase64String(encrypted)
Return System.Web.HttpUtility.UrlEncode(encodedtext)
解码功能位于C#ASP.NET网站中:

byte[] decodedtext = Convert.FromBase64String(querystring);
byte[] decrypted = Encryption.Decrypt(decodedtext, key);
string plaintext = ASCIIEncoding.UTF8.GetString(decrypted);
State mystate = new State();
mystate.Deserialize(plaintext);
return mystate;

你需要它是安全的还是不容易阅读?如果安全,请对其进行加密。如果不可读,请用base 64编码。@zimdanen是否会在编码字符串中生成无效或在url中被误解的字符,而不考虑输入?这就是为什么我问你仍然需要对它们进行URL编码。