109

2つの違いは何ですか?

4

4 に答える 4

28

完全を期すために、@dommer の回答にリンクされているサイトの関連セクションのコピーを次に示します。

フレームワークのバージョン 1.1 には、証明書を操作できる X509Certificate クラス以外はほとんどありませんでした。実際、v1.1 X509Certificate クラスは基本的なサポートのみを提供しました。X509 バージョン 1 フィールド (有効開始日と有効終了日、サブジェクト、公開鍵など) へのアクセスのみを提供し、バージョン 2 フィールド (認証キー識別子など) へのアクセスは提供しませんでした。 ) もバージョン 3 フィールド (キーの使用法など) もありません。証明書ストアからの証明書のロードはサポートされておらず、証明書失効リストまたは証明書信頼リストにアクセスする機能もありません。Microsoft は、証明書クラスを拡張し、証明書ストアにアクセスするためのクラスを提供する Web Services Enhancement (WSE) ツールキットでこれを改善しました。これらのクラスは、.NET 3.0/2.0 フレームワーク ライブラリに含まれるようになりました。

最初の大きな変更点は、X509Certificate から派生した X509Certificate2 という新しいクラスです。X509 証明書フィールドにアクセスするメソッドは廃止され、クラスにはこれらのフィールドにアクセスするためのプロパティが含まれるようになりました。さらに、証明書に秘密鍵が関連付けられている場合、クラスはこの鍵へのアクセスを許可します。秘密鍵がパスワードで保護されている場合、パスワードを提供できる方法があります。パスワードは SecureString パラメーターを介して渡されます。これは、オブジェクトが使用されなくなったときに、占有されていたメモリが上書きされ、マシン上の別のプロセスがパスワードを読み取ることができないようにする特別なタイプです。セキュリティで保護された文字列とその他の形式の保護されたデータについては、後のセクションで説明します。

X509Certificate2 は X509Certificate から派生するため、X509Certificate2 クラスを通じて静的メソッド CreateFromeCertFile および CreateFromSignedFile を呼び出すことができることを意味します。ただし、これらのメソッドは X509Certificate オブジェクトを返すため、これを X509Certificate2 オブジェクトにダウン キャストすることはできません。X509Certificate クラスは、バージョン 3.0/2.0 で改善されました。X509 フィールドの一部にアクセスするためのプロパティを提供します。バイト配列からオブジェクトを初期化するか、証明書からバイト配列を生成する Import および Export メソッドを提供し、ファイル (ASN.1 DER) およびバイト配列からオブジェクトを作成するコンストラクターを備えています。興味深いことに、X509Certificate2 クラスには、X509Certificate オブジェクトから X509Certificate2 オブジェクトを作成できるコンストラクターがあります。

于 2012-01-04T12:14:45.220 に答える