0

さまざまなCryptographicExceptionsをカスタム例外とメッセージにマップしようとしています。たとえば、「オブジェクトはすでに存在します」==>「既存のRSAキーコンテナにアクセスするための十分な権限がありません」。ただし、CryptographicExceptionクラスを調べると、他の例外タイプのようなエラーコードコレクションは見つかりません。3.5で実行しているため、HResultも使用できません。最後に、メッセージはローカライズできるため、信頼できません。他のアイデアはありますか?

4

1 に答える 1

1
public Exception GetMappedCryptographicException(CryptographicException e)
{
    uint hresult = (uint)Marshal.GetHRForException(e);

    switch (hresult)
    {
        case 0x8009000F;  // OBJECT_ALREADY_EXISTS
            return new Exception(e, "Not enough permissions to access RSA key container.");
        default:
            return new Exception(e, "Unexpected cryptographic exception occurred.");
    }
}
于 2012-03-12T19:47:21.383 に答える