我们的网站托管在中等信任级别,托管服务提供商拒绝给予我们完全的信任。我们的代码尝试使用以下代码片段反序列化代码,但由于反射权限错误而失败。调试时,我得到“XML 文档 (71, 6) 中有错误”。错误。在完全信任的情况下,它工作得非常好。在我们决定转向完全信任的托管服务提供商之前,请有人建议我如何解决这个问题。
public static T Decrypt<T>(Stream stream)
{
Rijndael rij = Rijndael.Create();
rij.Key = key;
rij.IV = iv;
T obj = default(T); // assigns null if T is a reference type, or 0 (zero) for value types
using (CryptoStream cs = new CryptoStream(stream, rij.CreateDecryptor(), CryptoStreamMode.Read))
{
using (GZipStream zs = new GZipStream(cs, CompressionMode.Decompress))
{
XmlSerializer xs = new XmlSerializer(typeof(T));
obj = (T)xs.Deserialize(zs);
zs.Close();
}
cs.Close();
}
return obj;
}