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 回答