2009-06-04 15 views
0

クライアントがWebサーバーにログインするための特定の情報を保存するためのRemotingアプリケーションを開発しています。ユーザー名とパスワードをSystem.Security.SecureStringとしてプロパティを格納するクラスに設定します。次に、ログイン資格情報を持つクラスを、Webホストに接続するために使用するサーバーオブジェクトに渡し、取得した情報といくつかの情報を返します。サーバーメソッドを呼び出すと、次のエラーが発生します。.NET Remoting AppでSystem.Security.SecureStringを使用していますか?

Type 'System.Security.SecureString' in Assembly 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.
SecureStringを含むクラスはserializeableとしてマークされています。これはSecureStringプロパティを追加するまで開発中に機能していました。この作業をするために必要なことはありますか、またはSecureStringをStringに変更する必要がありますか?

答えて

1

SecureStringからデータを取得することは非常に困難ですが、これは良いことです。 SecureStringを使用する場合は、オブジェクトにというカスタムを実装し、SecureStringを使用して、使用可能なものとして保存する必要があります(プロセス内で暗号化することさえできます)。

+0

気に入らないのですが、すべてのSecureStringを文字列に変更しました。チャンネルで提供されている暗号化を解決するだけです – jac

0

セキュアな文字列クラスはCOMには表示されません。そのため、このエラーが表示されます。セキュリティで保護された文字列を文字列に変換してからシリアル化すると役立ちます。

関連する問題