示例#1
0
 /// <summary>
 /// 创建一个新的联系人对象。
 /// </summary>
 /// <param name="containerDN">表示联系人的容器DN。</param>
 /// <param name="commonName">表示联系人的公共名称。</param>
 /// <returns>返回一个新的联系人对象。</returns>
 public DomainContact CreateNewContact(string containerDN, string commonName)
 {
     try
     {
         if (string.IsNullOrEmpty(containerDN.Trim()))
         {
             throw new Exception("“containerDN”属性不能为空");
         }
         if (string.IsNullOrEmpty(commonName.Trim()))
         {
             throw new Exception("“commonName”属性不能为空");
         }
         string contactDN = "CN=" + commonName + "," + containerDN;
         using (DirectoryEntry container = GetDirectoryEntry(containerDN))
         {
             if (ExistDirectoryEntryByDN(contactDN))
             {
                 throw new Exception("已存在公共名称为“" + commonName + "”的对象。");
             }
             container.Children.Add("CN=" + commonName, "contact").CommitChanges();
             DomainContact domainContact = GetContact(contactDN);
             return(domainContact);
         }
     }
     catch
     {
         return(null);
     }
 }
示例#2
0
        public void ToDtAssoc()
        {
            var contact = new DomainContact {
                FirstName  = "Susan",
                LastName   = "Miller",
                Address1   = "518 8th Ave",
                Address2   = "APT 10A",
                City       = "San Francisco",
                State      = "CA",
                Country    = "US",
                PostalCode = "94104",
                Email      = "*****@*****.**",
                Phone      = "+1.5555555555"
            };

            var expected =
                @"<dt_assoc>
  <item key=""first_name"">Susan</item>
  <item key=""last_name"">Miller</item>
  <item key=""phone"">+1.5555555555</item>
  <item key=""email"">[email protected]</item>
  <item key=""address1"">518 8th Ave</item>
  <item key=""address2"">APT 10A</item>
  <item key=""city"">San Francisco</item>
  <item key=""state"">CA</item>
  <item key=""country"">US</item>
  <item key=""postal_code"">94104</item>
</dt_assoc>";

            var result = Util.ToDtAssoc(contact.GetParameters());

            Assert.Equal(expected, result.ToString());
        }
示例#3
0
        private void AddCustomerContacts(DomainContacts contacts)
        {
            if (contacts != null)
            {
                foreach (string key in contacts.Keys)
                {
                    DomainContact contact = contacts[key];

                    string contactKey = key;

                    if (key == "Billing")
                    {
                        contactKey = "AuxBilling";
                    }

                    AddParam(contactKey + "EmailAddress", contact["Email"]);
                    AddParam(contactKey + "Fax", contact["Fax"]);
                    AddParam(contactKey + "Phone", contact["Phone"]);
                    AddParam(contactKey + "Country", contact["Country"]);
                    AddParam(contactKey + "PostalCode", contact["Zip"]);

                    // add state
                    if (contact.HasKey("State"))
                    {
                        AddParam(contactKey + "StateProvinceChoice", "S");
                        AddParam(contactKey + "StateProvince", contact["State"]);
                    }
                    // add province
                    else if (contact.HasKey("Province"))
                    {
                        AddParam(contactKey + "StateProvinceChoice", "Province");
                        AddParam(contactKey + "StateProvince", contact["Province"]);
                    }
                    // add blank
                    else
                    {
                        AddParam(contactKey + "StateProvinceChoice", "Blank");
                        AddParam(contactKey + "StateProvince", "");
                    }

                    AddParam(contactKey + "City", contact["City"]);
                    AddParam(contactKey + "Address1", contact["Address"]);
                    AddParam(contactKey + "Address2", contact["Address1"]);
                    AddParam(contactKey + "LastName", contact["LastName"]);
                    AddParam(contactKey + "FirstName", contact["FirstName"]);
                    AddParam(contactKey + "JobTitle", contact["JobTitle"]);
                    AddParam(contactKey + "OrganizationName", contact["Company"]);
                }
            }
        }
示例#4
0
        public void CanSerialize()
        {
            var contact = new DomainContact
            {
                FirstName        = "John",
                LastName         = "Doe",
                OrganizationName = "Tucows",
                Address1         = "141 Lafayette St.",
                Address2         = "Floor 99",
                City             = "New York",
                State            = "NY",
                Country          = "US",
                PostalCode       = "10013",
                Email            = "*****@*****.**",
                Phone            = "+1.8661111111"
            };

            var request = new RegisterRequest
            {
                Domain   = "test.com",
                Contacts = new ContactSet
                {
                    Admin   = contact,
                    Billing = contact,
                    Tech    = contact,
                    Owner   = contact
                },
                AutoRenew        = false,
                LockDomain       = true,
                RegistrationType = RegistrationType.New,
                Period           = 1,
                WhoisPrivacy     = true,
                UserName         = "******",
                Password         = "******"
            };

            var text = request.ToXml().ToString();

            Assert.Equal(
                @"<OPS_envelope>
  <header>
    <version>0.9</version>
  </header>
  <body>
    <data_block>
      <dt_assoc>
        <item key=""protocol"">XCP</item>
        <item key=""action"">SW_REGISTER</item>
        <item key=""object"">DOMAIN</item>
        <item key=""attributes"">
          <dt_assoc>
            <item key=""auto_renew"">0</item>
            <item key=""contact_set"">
              <dt_assoc>
                <item key=""owner"">
                  <dt_assoc>
                    <item key=""first_name"">John</item>
                    <item key=""last_name"">Doe</item>
                    <item key=""phone"">+1.8661111111</item>
                    <item key=""email"">[email protected]</item>
                    <item key=""org_name"">Tucows</item>
                    <item key=""address1"">141 Lafayette St.</item>
                    <item key=""address2"">Floor 99</item>
                    <item key=""city"">New York</item>
                    <item key=""state"">NY</item>
                    <item key=""country"">US</item>
                    <item key=""postal_code"">10013</item>
                  </dt_assoc>
                </item>
                <item key=""admin"">
                  <dt_assoc>
                    <item key=""first_name"">John</item>
                    <item key=""last_name"">Doe</item>
                    <item key=""phone"">+1.8661111111</item>
                    <item key=""email"">[email protected]</item>
                    <item key=""org_name"">Tucows</item>
                    <item key=""address1"">141 Lafayette St.</item>
                    <item key=""address2"">Floor 99</item>
                    <item key=""city"">New York</item>
                    <item key=""state"">NY</item>
                    <item key=""country"">US</item>
                    <item key=""postal_code"">10013</item>
                  </dt_assoc>
                </item>
                <item key=""tech"">
                  <dt_assoc>
                    <item key=""first_name"">John</item>
                    <item key=""last_name"">Doe</item>
                    <item key=""phone"">+1.8661111111</item>
                    <item key=""email"">[email protected]</item>
                    <item key=""org_name"">Tucows</item>
                    <item key=""address1"">141 Lafayette St.</item>
                    <item key=""address2"">Floor 99</item>
                    <item key=""city"">New York</item>
                    <item key=""state"">NY</item>
                    <item key=""country"">US</item>
                    <item key=""postal_code"">10013</item>
                  </dt_assoc>
                </item>
                <item key=""billing"">
                  <dt_assoc>
                    <item key=""first_name"">John</item>
                    <item key=""last_name"">Doe</item>
                    <item key=""phone"">+1.8661111111</item>
                    <item key=""email"">[email protected]</item>
                    <item key=""org_name"">Tucows</item>
                    <item key=""address1"">141 Lafayette St.</item>
                    <item key=""address2"">Floor 99</item>
                    <item key=""city"">New York</item>
                    <item key=""state"">NY</item>
                    <item key=""country"">US</item>
                    <item key=""postal_code"">10013</item>
                  </dt_assoc>
                </item>
              </dt_assoc>
            </item>
            <item key=""custom_nameservers"">0</item>
            <item key=""custom_tech_contact"">0</item>
            <item key=""f_lock_domain"">1</item>
            <item key=""domain"">test.com</item>
            <item key=""handle"">process</item>
            <item key=""period"">1</item>
            <item key=""reg_username"">test</item>
            <item key=""reg_password"">password</item>
            <item key=""reg_type"">new</item>
            <item key=""f_whois_privacy"">1</item>
          </dt_assoc>
        </item>
      </dt_assoc>
    </data_block>
  </body>
</OPS_envelope>", text);
        }
示例#5
0
        /// <summary>
        /// 创建联系人对象。
        /// </summary>
        /// <param name="path">表示访问路径。</param>
        /// <returns>联系人域节点或对象。</returns>
        public DomainContact GetContact(string path)
        {
            DomainContact domainContact = new DomainContact(CreateDirectoryPath(path), Username, Password, AuthenticationType);

            return(domainContact);
        }