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