コード例 #1
0
        public uint GetDomainController(
            string domainFQDN,
            out string domainControllerFQDN
            )
        {
            domainControllerFQDN = null;
            uint error = 0;

            try
            {
                Logger.Log(String.Format("GetDomainController({0}) called",
                                         domainFQDN),
                           Logger.NetlogonLogLevel);

                error = NetlogonAPI.LWNetGetDomainController(
                    domainFQDN,
                    out domainControllerFQDN);

                Logger.Log(String.Format("GetDomainController() returned {0}, error={1}",
                                         domainControllerFQDN, error),
                           Logger.NetlogonLogLevel);
            }

            catch (Exception e)
            {
                Logger.LogException("Netlogon.GetDomainController", e);
                if (error == 0)
                {
                    error = CNetlogon.Definitions.LWNET_ERROR_INTEROP_EXCEPTION;
                }
            }

            return(error);
        }
コード例 #2
0
        public uint GetDCName(
            string domainFQDN,
            uint flags,
            out CNetlogon.LWNET_DC_INFO DCInfo
            )
        {
            CNetlogon.LWNET_DC_INFO info = new CNetlogon.LWNET_DC_INFO();
            DCInfo = info;
            IntPtr pDCInfo = IntPtr.Zero;
            uint   error   = 0;

            try
            {
                Logger.Log(String.Format("GetDCName({0}, {1}) called",
                                         domainFQDN,
                                         flags),
                           Logger.NetlogonLogLevel);

                error = NetlogonAPI.LWNetGetDCName(
                    null,
                    domainFQDN,
                    null,
                    flags,
                    out pDCInfo);

                DCInfo = (CNetlogon.LWNET_DC_INFO)Marshal.PtrToStructure(pDCInfo, typeof(CNetlogon.LWNET_DC_INFO));

                Logger.Log(String.Format("GetDCName() returned {0}, error={1}",
                                         CNetlogon.LWNETDCInfoToString(DCInfo), error),
                           Logger.NetlogonLogLevel);
            }

            catch (Exception e)
            {
                Logger.LogException("Netlogon.GetDCName", e);
                if (error == 0)
                {
                    error = CNetlogon.Definitions.LWNET_ERROR_INTEROP_EXCEPTION;
                }
            }

            return(error);
        }
コード例 #3
0
        public uint GetDCTime(
            string domainFQDN,
            out DateTime DCTime
            )
        {
            DCTime = new DateTime();
            uint error = 0;

            NetlogonAPI.POSIX_TIME posixDCTime = new NetlogonAPI.POSIX_TIME();

            try
            {
                Logger.Log(String.Format("GetDCTime({0}) called",
                                         domainFQDN),
                           Logger.NetlogonLogLevel);

                error = NetlogonAPI.LWNetGetDCTime(
                    domainFQDN,
                    out posixDCTime);

                DCTime = PosixTimeToDateTime(posixDCTime);

                Logger.Log(String.Format("GetDCTime() returned {0}, error={1}",
                                         DCTime, error),
                           Logger.NetlogonLogLevel);
            }

            catch (Exception e)
            {
                Logger.LogException("Netlogon.GetDCTime", e);
                if (error == 0)
                {
                    error = CNetlogon.Definitions.LWNET_ERROR_INTEROP_EXCEPTION;
                }
            }

            return(error);
        }