Del*_*rog 4 .net c# serialization json json.net
我无法将JSON文本序列化为包含SecureString变量的对象.我如何在保持公共'pwd'变量为SecureString的同时序列化以下内容?
假设有以下字符串:
string j_str = "{ 'uid':'JohnDoe', 'age':30, 'pwd':'MyPassword' }";
Run Code Online (Sandbox Code Playgroud)
我想将此字符串序列化为我在C#中的对象
public class User
{
public string uid = { get; set; }
public string age = { get; set; }
public SecureString pwd = { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
所以我可以使用Newtonoft调用以下调用JSON ToObject),如下所示:
JObject j_obj = JObject.Parse(j_str);
User newUser = j_obj.ToObject<User>();
Run Code Online (Sandbox Code Playgroud)
这会导致以下错误:
Newtonsoft.Json.JsonSerializationException: 'Error converting value "MyPassword" to type 'System.Security.SecureString'. Path 'pwd'
Run Code Online (Sandbox Code Playgroud)
小智 6
从字符串构造它似乎违背了使用SecureString背后的原则.请参阅https://msdn.microsoft.com/en-us/library/system.security.securestring(v=vs.110).aspx:
永远不应该从String构造SecureString对象,因为敏感数据已经受到不可变String类的内存持久性影响.构造SecureString对象的最佳方法是来自一次一个字符的非托管源,例如Console.ReadKey方法.
归档时间: |
|
查看次数: |
2000 次 |
最近记录: |