CryptographicException的错误代码?

时间:2012-03-12 17:30:56

标签: encryption .net-3.5 cryptographicexception

我正在尝试将不同的CryptographicExceptions映射到自定义异常和消息。例如,“对象已存在”==> “没有足够的权限访问现有的RSA密钥容器”。但是,当我检查CryptographicException类时,我没有像其他异常类型那样找到任何错误代码集合。我正在运行3.5,所以HResult也不可用。最后,我不能依赖该消息,因为它可以本地化。还有其他想法吗?

1 个答案:

答案 0 :(得分: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.");
    }
}