Использование System.Security.SecureString в .NET Remoting App? - PullRequest
0 голосов
/ 04 июня 2009

Я разрабатываю приложение Remoting, в котором клиент ищет информацию о конкретном хранилище для входа на веб-сервер. Он устанавливает имя пользователя и пароли в классе, который хранит свойства как System.Security.SecureString. Затем я пытаюсь передать класс с учетными данными для входа на серверный объект, который использует его для подключения к веб-хосту, получения и получения некоторой информации обратно. Когда я вызываю метод сервера, у меня возникает эта ошибка:

Type 'System.Security.SecureString' in Assembly 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.
Класс, содержащий SecureStrings, помечается как сериализуемый, и это работало при разработке, пока я не добавил свойства SecureString. Есть ли что-то, что мне нужно сделать, чтобы сделать эту работу, или мне придется изменить SecureString на String?

Ответы [ 2 ]

1 голос
/ 04 июня 2009

Очень сложно получить данные из SecureString, что хорошо. Если вы хотите использовать SecureString, вам придется реализовать пользовательский Serializer для вашего объекта, который может взять SecureString и сохранить его как что-то пригодное для использования (возможно, даже зашифровав его в процессе).

0 голосов
/ 17 марта 2010

Класс защищенной строки не виден для COM. Вот почему он показывает эту ошибку. Может быть, преобразование безопасной строки в строку, а затем ее сериализация поможет.

...