c# - trabajo - ver que usuario usa que computadora en un dominio de active directory
¿Cómo puedo verificar si la cuenta de dominio de una computadora no es válida(la confianza está quebrada)? (1)
Debo reconocer cuadernos cuyas domain accounts
ya no son válidas.
Cuentas de dominio inválidas pueden ocurrir debido a varios problemas. Sobre todo, el cliente fue restaurado a partir de una copia de seguridad y luego la cuenta de dominio ya no es válida
En este caso, el comportamiento es:
- El inicio de sesión del usuario funciona a través de
cached credentials
- El usuario
has access to shares
y archivos en el servidor (NTLM) - El acceso a través de
Kerberos does not work
¿Hay alguna posibilidad de verificar la validez de la cuenta de la computadora?
Con este código puedo encontrar invalid computer domain accounts
:
try
{
string sMyComputer = "MyComputer"
Domain computerDomain = Domain.GetComputerDomain(); // may! throw ActiveDirectoryObjectNotFoundException if computer account is invalid
string sComputerDomain = computerDomain.Name;
NTAccount acc_machine = new NTAccount(sComputerDomain, sMyComputer + "$");
SecurityIdentifier sid = (SecurityIdentifier)acc_machine.Translate(typeof(SecurityIdentifier)); // always throws an SystemException if computer account is invalid
}
catch
{
// something is wrong with the account
}
- sMyComputer + "$" es cómo se almacena el nombre de la cuenta en el directorio activo
- mi experiencia es que la primera excepción no se lanza en su mayoría y el valor de retorno es el nombre correcto del dominio que la computadora tenía una vez una cuenta de computadora que funciona
- la segunda excepción (SystemException) siempre se lanza si computeraccount ahora no es válido. El errocode es 80004005. (Esperaba una IdentityNotMappedException)
EDITAR:
error corregido en el código