В нашей кодовой базе у нас есть кусок кода, который принимает некоторые решения на основе членства текущего пользователя.Значительно упрощенно это выглядит так:
foreach (var group in WindowsIdentity.GetCurrent().Groups)
{
try
{
string groupName = group.Translate(typeof(NTAccount)).Value;
if (groupName.StartsWith(..blahblahblah...)) { dosomething(); }
}
catch (IdentityNotMappedException) { }
}
К сожалению, я на ноутбуке вне локальной сети, и он не обрабатывает автономный случай.Вызов Translate()
завершается с ошибкой SystemException «Не удалось установить доверительные отношения между этой рабочей станцией и основным доменом».
Я не хочу маскировать SystemException
по понятным причинам, иЯ определенно не хочу отключать при первой возможности перехват тех, кто находится в отладчике.
Какой правильный способ проверки на сбой Translate () из-за недоступности контроллера домена?Я не хочу маскировать конкретную ошибку «доверительные отношения не удалось», просто старайтесь не пытаться перевести, если гарантированно произойдет сбой из-за сетевых условий.