コード例 #1
0
        public AdsiClient(string server = null, NetworkCredential credential = null)
        {
            DirectoryContext context;

            if (!String.IsNullOrEmpty(server))
            {
                if (credential != null)
                {
                    context = new DirectoryContext(DirectoryContextType.DirectoryServer, server, credential.GetLogonName(), credential.Password);
                }
                else
                {
                    context = new DirectoryContext(DirectoryContextType.DirectoryServer, server);
                }
                using (var dc = DomainController.GetDomainController(context))
                {
                    using (var domain = dc.Domain)
                    {
                        this.searchRoot        = domain.GetDirectoryEntry();
                        this.NetBIOSDomainName = GetNetBIOSDomainName(domain, server);
                    }
                }
            }
            else
            {
                // Discover the server for the current domain
                if (credential != null)
                {
                    context = new DirectoryContext(DirectoryContextType.Domain, credential.GetLogonName(), credential.Password);
                }
                else
                {
                    context = new DirectoryContext(DirectoryContextType.Domain);
                }
                using (var domain = Domain.GetDomain(context))
                {
                    this.searchRoot        = domain.GetDirectoryEntry();
                    this.NetBIOSDomainName = GetNetBIOSDomainName(domain, server);
                }
            }
        }
コード例 #2
0
        public NamedPipeConnection(string server, NetworkCredential credential)
        {
            // Argument validation:
            Validator.AssertNotNullOrWhiteSpace(server, "server");
            Validator.AssertNotNull(credential, "credential");

            this.Server = server;
            // Disconnect from the IPC share first in case of a preexisting connection. Ignore any errors.
            this.DoDisconnect();
            // Connect
            NetResource    resource = new NetResource(this.ShareName);
            Win32ErrorCode result   = NativeMethods.WNetAddConnection2(ref resource, credential.SecurePassword, credential.GetLogonName(), NetConnectOptions.Temporary);

            Validator.AssertSuccess(result);
        }