Exemplo n.º 1
0
        /// <summary>
        /// Extract the workspace credentials from the XML element specified.
        /// </summary>
        private static KwsCredentials XmlToKwsCredentials(XmlElement el)
        {
            KwsCredentials c = new KwsCredentials();

            int version = Int32.Parse(el.GetAttribute("version"));

            if (version > KwsCredentials.ExportVersion)
            {
                throw new Exception("unsupported kws version ('" + version + "')");
            }

            c.KcdAddress          = KwmXml.GetXmlChildValue(el, "KcdAddress", "");
            c.KwmoAddress         = KwmXml.GetXmlChildValue(el, "KwmoAddress", "");
            c.ExternalID          = UInt64.Parse(KwmXml.GetXmlChildValue(el, "ExternalID", "0"));
            c.EmailID             = KwmXml.GetXmlChildValue(el, "EmailID", "");
            c.KwsName             = KwmXml.GetXmlChildValue(el, "KwsName", "");
            c.UserName            = KwmXml.GetXmlChildValue(el, "UserName", "");
            c.UserEmailAddress    = KwmXml.GetXmlChildValue(el, "UserEmailAddress", "");
            c.InviterName         = KwmXml.GetXmlChildValue(el, "InviterName", "");
            c.InviterEmailAddress = KwmXml.GetXmlChildValue(el, "InviterEmailAddress", "");
            c.UserID     = UInt32.Parse(KwmXml.GetXmlChildValue(el, "UserID", "0"));
            c.Ticket     = Convert.FromBase64String(KwmXml.GetXmlChildValue(el, "Ticket", ""));
            c.Pwd        = KwmXml.GetXmlChildValue(el, "Pwd", "");
            c.Flags      = UInt32.Parse(KwmXml.GetXmlChildValue(el, "Flags", "0"));
            c.FolderPath = KwmXml.GetXmlChildValue(el, "FolderPath", "");
            c.EtBlob     = Convert.FromBase64String(KwmXml.GetXmlChildValue(el, "EtBlob", ""));

            if (version < 4)
            {
                XmlElement kasIDElem = KwmXml.GetXmlChildElement(el, "KasID");
                if (kasIDElem == null)
                {
                    throw new Exception("KasID element not present");
                }
                c.KcdAddress = KwmXml.GetXmlChildValue(kasIDElem, "Host", "");
                c.PublicFlag = bool.Parse(KwmXml.GetXmlChildValue(el, "PublicFlag", "False"));
                c.SecureFlag = bool.Parse(KwmXml.GetXmlChildValue(el, "SecureFlag", "False"));
            }

            // Normalize the data.
            if (c.Ticket != null && c.Ticket.Length == 0)
            {
                c.Ticket = null;
            }
            if (c.EtBlob != null && c.EtBlob.Length == 0)
            {
                c.EtBlob = null;
            }

            // Validate.
            if (c.KcdAddress == "" || c.ExternalID == 0)
            {
                throw new Exception("invalid kws credentials");
            }

            return(c);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Store the workspace credentials in the element specified. Nothing
        /// is exported if the credentials are invalid.
        /// </summary>
        private static void KwsCredentialsToXml(KwsCredentials c, XmlDocument doc, XmlElement parent)
        {
            if (c.KcdAddress == "" || c.ExternalID == 0)
            {
                return;
            }

            XmlElement el = doc.CreateElement("Kws");

            parent.AppendChild(el);

            el.SetAttribute("version", KwsCredentials.ExportVersion.ToString());
            KwmXml.CreateXmlElement(doc, el, "KcdAddress", c.KcdAddress);
            if (c.KwmoAddress != "")
            {
                KwmXml.CreateXmlElement(doc, el, "KwmoAddress", c.KwmoAddress);
            }
            KwmXml.CreateXmlElement(doc, el, "ExternalID", c.ExternalID.ToString());
            KwmXml.CreateXmlElement(doc, el, "EmailID", c.EmailID);
            if (c.KwsName != "")
            {
                KwmXml.CreateXmlElement(doc, el, "KwsName", c.KwsName);
            }
            if (c.UserName != "")
            {
                KwmXml.CreateXmlElement(doc, el, "UserName", c.UserName);
            }
            if (c.UserEmailAddress != "")
            {
                KwmXml.CreateXmlElement(doc, el, "UserEmailAddress", c.UserEmailAddress);
            }
            if (c.InviterName != "")
            {
                KwmXml.CreateXmlElement(doc, el, "InviterName", c.InviterName);
            }
            if (c.InviterEmailAddress != "")
            {
                KwmXml.CreateXmlElement(doc, el, "InviterEmailAddress", c.InviterEmailAddress);
            }
            if (c.UserID != 0)
            {
                KwmXml.CreateXmlElement(doc, el, "UserID", c.UserID.ToString());
            }
            if (c.Ticket != null)
            {
                KwmXml.CreateXmlElement(doc, el, "Ticket", Convert.ToBase64String(c.Ticket));
            }
            if (c.Pwd != "")
            {
                KwmXml.CreateXmlElement(doc, el, "Pwd", c.Pwd);
            }
            if (c.Flags != 0)
            {
                KwmXml.CreateXmlElement(doc, el, "Flags", c.Flags.ToString());
            }
            if (c.FolderPath != "")
            {
                KwmXml.CreateXmlElement(doc, el, "FolderPath", c.FolderPath);
            }
            if (c.EtBlob != null)
            {
                KwmXml.CreateXmlElement(doc, el, "EtBlob", Convert.ToBase64String(c.EtBlob));
            }
        }