是否存在以中等信任方式运行的BinaryFormatter替代方案(Is there a BinaryFormatter alternative which runs in medium trust)

编程入门 行业动态 更新时间:2024-10-28 12:21:29
是否存在以中等信任方式运行的BinaryFormatter替代方案(Is there a BinaryFormatter alternative which runs in medium trust)

我在托管环境中运行一个网站(即我无权控制权限),并设置为以中等信任度运行。 我使用的代码序列化对象以保存在数据库中并使用BinaryFormatter。 但是,这会抛出在中等信任下运行的SecurityException。

是否有另一种二进制格式化程序可以在中等信任下运行?

I'm running a website in a hosted environment (i.e. I don't have control over permissions) and it is set to run at medium trust. The code i'm using serializes object for saving in a database and uses the BinaryFormatter. However this throws an SecurityException running under medium trust.

Is there an alternative binary formatter which would run under medium trust?

最满意答案

BinaryFormatter的设计不适用于部分信任。 .NET Framework具有其他可用的格式化程序,它们可以部分信任:

XmlSerializer的 DataContractSerializer的 NetDataContractSerializer

XmlSerializer和DataContractSerializer适用于序列化类似记录的类型,其中对象图是有限的,所有要序列化的类型都是提前知道的。 它们还可以与其他非.NET框架互操作。 NetDataContractSerializer更适用于通用.NET框架序列化,您可能不知道图中要提前序列化的所有类型。 最大的缺点是它无法轻松地与其他非.NET框架互操作,因为它包含序列化流中的类型信息。

无论您使用哪种序列化程序,某些类型根本无法在部分信任中进行序列化。 有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/bb412175.aspx 。

Thanks for the comments. For those interested i ended up using Newtonsofts JsonSerializer with the BsonWriter which works in medium trust. See Example code below:

public object Deserialize<T>(System.IO.Stream serializationStream) { JsonSerializer serializer = new JsonSerializer(); T instance; BsonReader reader = new BsonReader(serializationStream); instance = serializer.Deserialize<T>(reader); return instance; } public void Serialize(System.IO.Stream serializationStream, object graph) { JsonSerializer serializer = new JsonSerializer(); using (BsonWriter writer = new BsonWriter(serializationStream)) { serializer.Serialize(writer, graph); } }

更多推荐

本文发布于:2023-08-03 02:31:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1382923.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:是否存在   方式   方案   medium   trust

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!