Я обновляю проект C#, чтобы сделать его более безопасным (к нему предъявляются очень строгие требования). Одним из требований является защита некоторых данных в памяти для предотвращения «несанкционированного» доступа к ним. Я сделал свое исследование и закончил с «ProtectedMemory.Protect». Я не эксперт в C#, поэтому я не уверен, правильно ли это делается или нет. Упрощенный пример того, как я это реализовал:
public class User
{
public string Name
{
get
{
return Encoding.UTF8.GetString(ProtectedMemory.Unprotect(_name, MemoryProtectionScope.SameLogon));
}
set
{
_name = Encoding.UTF8.GetBytes(value);
ProtectedMemory.Protect(_name, MemoryProtectionScope.SameLogon);
}
}
private byte[] _name;
}
Это имеет смысл вообще? : D