Я пишу поставщик учетных данных в Windows, и я пытаюсь добавить к нему поддержку входа по имени UPN, и для этого я использовал TranslateNameW TranslateNameW(UPName, NameUserPrincipal, NameSamCompatible, buffer, &size);
, который дает мне SAM имя учетной записи, если указано имя UPN, и наоборот, и это работает, только когда домен находится в сети, и не будет работать, когда домен отключен.
Проблема здесь в том, когда пользователь домена кэшируется и когда домен не в сети Я не могу преобразовать это UPN в имя SAM, а затем windows выдает мне сообщение об ошибке, в котором говорится, что We can't sign you in with this credential because your domain isn't available. Make sure your device is connected to your organisation's network and try again if you previously signed on this device with another credential you can sign in with that credential.
Windows поставщик учетных данных пароля работает нормально в этом сценарии, он может переводить UPN в SAM, даже если домен находится в автономном режиме.
Я не могу проанализировать имя UPN и преобразовать его в имя SAM, потому что не гарантируется, что имя UPN всегда совпадает с именем SAM, т.е. если UPN равно johndoe@example.com
Имя SAM не обязательно должно быть johndoe
это может быть jdoe
или что угодно.
Итак, мой вопрос: как я могу получить доступ к имени учетной записи SAM этого пользователя кэшированного домена, когда домен i s offline, есть ли в VC ++ какая-либо функция, которая возвращает имя SAM при предоставлении UPN, когда домен находится в автономном режиме? Как я могу справиться с этим сценарием?