| File: System\DirectoryServices\ActiveDirectory\ForestTrustDomainInformation.cs | Web Access |
| Project: src\runtime\src\libraries\System.DirectoryServices\src\System.DirectoryServices.csproj (System.DirectoryServices) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.ComponentModel; using System.Runtime.InteropServices; namespace System.DirectoryServices.ActiveDirectory { public enum ForestTrustDomainStatus { Enabled = 0, SidAdminDisabled = 1, SidConflictDisabled = 2, NetBiosNameAdminDisabled = 4, NetBiosNameConflictDisabled = 8 } public class ForestTrustDomainInformation { private ForestTrustDomainStatus _status; internal LARGE_INTEGER time; internal ForestTrustDomainInformation(int flag, LSA_FOREST_TRUST_DOMAIN_INFO domainInfo, LARGE_INTEGER time) { _status = (ForestTrustDomainStatus)flag; DnsName = Marshal.PtrToStringUni(domainInfo.DNSNameBuffer, domainInfo.DNSNameLength / 2); NetBiosName = Marshal.PtrToStringUni(domainInfo.NetBIOSNameBuffer, domainInfo.NetBIOSNameLength / 2); string sidLocal; global::Interop.BOOL result = global::Interop.Advapi32.ConvertSidToStringSid(domainInfo.sid, out sidLocal); if (result == global::Interop.BOOL.FALSE) { throw ExceptionHelper.GetExceptionFromErrorCode(Marshal.GetLastPInvokeError()); } DomainSid = sidLocal; this.time = time; } public string DnsName { get; } public string NetBiosName { get; } public string DomainSid { get; } public ForestTrustDomainStatus Status { get => _status; set { if (value != ForestTrustDomainStatus.Enabled && value != ForestTrustDomainStatus.SidAdminDisabled && value != ForestTrustDomainStatus.SidConflictDisabled && value != ForestTrustDomainStatus.NetBiosNameAdminDisabled && value != ForestTrustDomainStatus.NetBiosNameConflictDisabled) throw new InvalidEnumArgumentException(nameof(value), (int)value, typeof(ForestTrustDomainStatus)); _status = value; } } } }