public void Constructor_Should_ThrowInvalidOperationException_When_ProvideNullValue() { // Arrange const ADS_USER_FLAG invalid = (ADS_USER_FLAG)99; // Act and Assert Assert.Throws <InvalidOperationException>( () => _ = ActiveDirectoryCommonFilters.UserAccessControl(invalid)); }
private static int SetAccountValueFlag(int originalValue, bool flag, ADS_USER_FLAG relativeFlag) { int result = originalValue; if (flag) { result |= (int)relativeFlag; } else { result &= ~(int)relativeFlag; } return(result); }
protected override bool ComparePropertyValue(IOguObject srcOguObject, string srcPropertyName, ADObjectWrapper adObject, string targetPropertyName, string context) { int userAccountControl = Convert.ToInt32(adObject.Properties[targetPropertyName]); ADS_USER_FLAG uacFlag = ADS_USER_FLAG.ADS_UF_NONE; bool result = true; if (Enum.TryParse(context, out uacFlag)) { bool originalFlag = ((userAccountControl & (int)uacFlag) == (int)uacFlag); result = originalFlag == (bool)srcOguObject.Properties[srcPropertyName]; } return(result); }
public void AdsUserFlagPropertyShouldConvertFromDirectoryValue() { // Fixture setup const ADS_USER_FLAG userFlag = ADS_USER_FLAG.ADS_UF_ACCOUNTDISABLE; var properties = Enumeration.GetAll <DirectoryProperty>() .Where(p => p.Syntax == DirectoryPropertySyntax.Enumeration && p.NotionalType.IsEquivalentTo(typeof(ADS_USER_FLAG))); // Exercise system var flags = properties .Select(p => p.ConvertFromDirectoryValue((int)userFlag)) .ToList(); // Verify outcome flags.Should().HaveCountGreaterThan(0); flags.ForEach(f => ((ADS_USER_FLAG)f).Should().Be(userFlag)); }
private static void MergeUACValue(IOguObject srcOguObject, string srcPropertyName, DirectoryEntry entry, string targetPropertyName, string context) { int userAccountControl = Convert.ToInt32(entry.Properties[targetPropertyName].Value); ADS_USER_FLAG uacFlag = ADS_USER_FLAG.ADS_UF_NONE; if (Enum.TryParse(context, out uacFlag)) { bool srcPropertyValue = (bool)srcOguObject.Properties[srcPropertyName]; if (srcPropertyValue) { userAccountControl = userAccountControl | (int)uacFlag; } else { userAccountControl = userAccountControl & ~(int)(uacFlag); } } entry.Properties[targetPropertyName].Value = userAccountControl; }
/// <summary> /// Returns an LdapFilter for use with userAccountControl searches. /// </summary> /// <param name="uac">An ADS_USER_Flag enumeration.</param> /// <returns>LdapFilter for User Account Control Search.</returns> public static LdapFilter UserAccessControl(ADS_USER_FLAG uac) { switch (uac) { case ADS_USER_FLAG.SCRIPT: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=1")); case ADS_USER_FLAG.ACCOUNTDISABLE: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=2")); case ADS_USER_FLAG.HOMEDIR_REQUIRED: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=8")); case ADS_USER_FLAG.LOCKOUT: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=16")); case ADS_USER_FLAG.PASSWD_NOTREQD: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=32")); case ADS_USER_FLAG.PASSWD_CANT_CHANGE: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=64")); case ADS_USER_FLAG.ENCRYPTED_TEXT_PASSWORD_ALLOWED: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=128")); case ADS_USER_FLAG.TEMP_DUPLICATE_ACCOUNT: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=256")); case ADS_USER_FLAG.NORMAL_ACCOUNT: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=512")); case ADS_USER_FLAG.INTERDOMAIN_TRUST_ACCOUNT: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=2048")); case ADS_USER_FLAG.WORKSTATION_TRUST_ACCOUNT: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=4096")); case ADS_USER_FLAG.SERVER_TRUST_ACCOUNT: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=8192")); case ADS_USER_FLAG.DONT_EXPIRE_PASSWD: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=65536")); case ADS_USER_FLAG.MNS_LOGON_ACCOUNT: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=131072")); case ADS_USER_FLAG.SMARTCARD_REQUIRED: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=262144")); case ADS_USER_FLAG.TRUSTED_FOR_DELEGATION: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=524288")); case ADS_USER_FLAG.NOT_DELEGATED: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=1048576")); case ADS_USER_FLAG.USE_DES_KEY_ONLY: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=2097152")); case ADS_USER_FLAG.DONT_REQUIRE_PREAUTH: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=4194304")); case ADS_USER_FLAG.PASSWORD_EXPIRED: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=8388608")); case ADS_USER_FLAG.TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION: return(new LdapFilter("userAccountControl:1.2.840.113556.1.4.803:=16777216")); default: throw new InvalidOperationException("Invalid User Flag!"); } }