Эта конструкция называется Тернарным оператором в области компьютерных наук и программирования. И Wikipedia предлагают следующее объяснение:
В информатике троичный оператор (иногда неправильно называемый третичным оператором) является оператором, который принимает три аргумента. Аргументы и результат могут быть разных типов. Многие языки программирования, использующие синтаксис C-типа, имеют тройной оператор,? :, который определяет условное выражение.
blockquote>Не только в Java этот синтаксис доступен в PHP, Objective-C тоже .
В следующей ссылке он дает следующее объяснение, которое очень приятно понять:
Тернарный оператор - это некоторая операция, выполняющая на 3 входах. Это ярлык для оператора if-else и также известен как условный оператор.
В Perl / PHP он работает как:
boolean_condition ? true_value : false_value
В C / C ++ он работает как:
blockquote>logical expression ? action for true : action for false
Это может быть читаемо для некоторых логических условий, которые не слишком сложны, в противном случае лучше использовать блок If-Else с предполагаемой комбинацией условной логики.
Мы можем упростить блоки If-Else с помощью этого оператора Ternary для одной строки оператора кода. Например:
if ( car.isStarted() ) { car.goForward(); } else { car.startTheEngine(); }
Возможно, это будет следующее:
( car.isStarted() ) ? car.goForward() : car.startTheEngine();
Итак, если мы ссылаемся на ваше утверждение:
int count = isHere ? getHereCount(index) : getAwayCount(index);
Это фактически 100% эквивалент следующего блока If-Else:
int count; if (isHere) { count = getHereCount(index); } else { count = getAwayCount(index); }
Вот и все! Надеюсь, это помогло кому-то! Ура!
Проблема как определенный AviD является кэшем Active Directory, которым можно управлять через реестр . В зависимости от Вашего решения опции групповой политики Avid перестанет работать или работать зависящий, если Вы на самом деле зарегистрируете пользователей в или нет.
то, Как это кэшируется, зависит от того, как Вы проходите проверку подлинности на IIS. Я подозреваю, что это мог быть Kerberos так, чтобы сделать очистку, если это вызывается Kerberos, можно хотеть попробовать klist опцией чистки, которая должна произвести чистку kerberos билетов, которые вызовут reauth к AD на следующей попытке и обновят детали.
я также предложил бы смотреть на реализацию это , который немного более сложен, но намного менее подвержен ошибкам.
Я знаю, что у нас были кэшируемые проблемы учетных данных в IIS в прошлом здесь также, и после Гугления в течение многих дней мы столкнулись с неясным (нам, по крайней мере) управляют, чтобы можно было использовать, чтобы просмотреть и очистить кэшируемые учетные данные.
Запускаются->, Выполнение (или WinKey+R) и тип управляет keymgr.dll
, Это решило наши проблемы для клиентских машин. Не попробовали его на серверах, но это могло бы стоить того, чтобы попытаться, если это - учетные данные кэширования сервера. Наша проблема была, мы получали старые учетные данные, но только на клиентской основе машины. Если пользователь вошел в систему на отдельной клиентской машине, все было прекрасно, но если они использовали свою собственную машину за их столом, что они обычно работают над ним, имел кэшируемые старые учетные данные.
Если это не проблема изменения только Имени пользователя NT, то действительно кажется, что услуга аутентификации кэширует старое имя пользователя.
можно определить это, чтобы быть отключенными, перейдите к Локальным параметрам безопасности (в Средствах администрирования), и в зависимости от версии/выпуска/конфигурации настройки, которые являются возможны релевантный (из памяти), являются "Количеством предыдущих входов в систему для кэширования", и "Не позволяют устройство хранения данных учетных данных...".
Дополнительные факторы для принятия во внимание:
По сути, я рекомендую протестировать это сначала прежде, чем развернуться на производстве (конечно).
Перезапуск IIS, не целой машины, должен добиться цели.
Когда имена этих пользователей изменились, Вы изменяли только их Имена для входа в систему NT или их имена UPN также? имена UPN являются именами собственными, и используемый Kerberos - который является протоколом по умолчанию для IWA; однако, если Вы просто нажимаете, чтобы изменить их имя в ActiveDirectory, только изменения Имени для входа в систему NT - даже при том, что это - то, что они использовали бы для входа в систему (использующий окна GINA по умолчанию). Под покрытиями окна перевели бы (новое) Имя для входа в систему NT к (старому) имени Kerberos. Это сохраняется, пока AD не вынужден обновить имя Kerberos согласно Имени для входа в систему NT...
Войдите в систему к серверу, который выполняет IIS с помощью нового рассматриваемого имени для входа в систему. Это обновит учетные данные, не перезапуская IIS или перезагружая сервер.
Эта ссылка «Изменение интервала по умолчанию для пользовательских токенов в IIS» от службы поддержки MicroSoft должно помочь.